`
xieyan30
  • 浏览: 49174 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

spring使用外部属性文件

 
阅读更多

在进行数据源或者邮件服务器等资源的配置时,可以直接在spring配置文件中用户名,密码,连接地址等配置信息,但是更好的一种做法是将这些配置信息独立到一个外部属性文件中。

优点:

1,减少维护的工作量。资源的配置信息可以被多个应用共享,如果需要发生改变,只需要调整这个独立的外部资源文件。

2,使部署更简单。在软件部署时,应用部署人员只需要修改这个独立的外部属性资源文件即可。

 

 (一)直接将配置信息写在xml配置文件中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="dataSource" 
          class="org.apache.commons.dbcp.BasicDataSource" 
          destroy-method="close" 
          p:driverClassName="com.mysql.jdbc.Driver" 
          p:url="jdbc:mysql://localhost:3306/testdb" 
          p:userName="root" 
          p:password="1234"/>

</beans>

 (二)对上面的配置进行优化

 首先我们将配置信息抽到一个资源文件中(例如:jdbc.properties)。

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/testdb
userName=root
password=1234

 (三)替换原配置文件中的配置信息。替换后如下图所示

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="dataSource" 
          class="org.apache.commons.dbcp.BasicDataSource" 
          destroy-method="close" 
          p:driverClassName="${driverClassName}" 
          p:url="${url}" 
          p:userName="${userName}" 
          p:password="${password}"/>

</beans>

 (四)替换以后,最关键的地方是,我们如何将properties的配置和xml关联起来呢?

我们要在xml配置中引入外部属性文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!-- 引入外部属性文件 -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
          p:location="classpath:spring3/pripertyFile/jdbc.properties"
          p:fileEncoding="utf-8"/>

    <bean id="dataSource" 
          class="org.apache.commons.dbcp.BasicDataSource" 
          destroy-method="close" 
          p:driverClassName="${driverClassName}" 
          p:url="${url}" 
          p:userName="${userName}" 
          p:password="${password}"/>

</beans>

 (五)使用context命名空间替代PropertyPlaceholderConfigurer,这样更优雅。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context-3.0.xsd ">

    <!-- 引入外部属性文件 -->
    <context:property-placeholder location="classpath:spring3/pripertyFile/jdbc.properties" file-encoding="utf8"/>
    <bean id="utf8" class="java.lang.String">
        <constructor-arg value="utf-8"/>
    </bean>

    <bean id="dataSource" 
          class="org.apache.commons.dbcp.BasicDataSource" 
          destroy-method="close" 
          p:driverClassName="${driverClassName}" 
          p:url="${url}" 
          p:userName="${userName}" 
          p:password="${password}"/>

</beans>

 

 

分享到:
评论

相关推荐

    JAVA Spring使用外部属性文件

    在Java Spring框架中,使用外部属性文件是一种常见的最佳实践,它允许我们将应用程序的配置信息与源代码分离,便于管理、维护和环境间的切换。本文将深入探讨如何在Spring应用中利用外部属性文件,以及其背后的原理...

    在Spring中使用加密外部属性文件

    在Spring框架中,属性文件是配置关键信息的常用...通过这种方式,你可以在Spring中安全地使用外部属性文件,同时满足系统的安全需求。这种做法不仅可以提高应用的可维护性和部署效率,还能保护敏感信息,降低安全风险。

    spring使用属性文件

    下面将详细介绍如何在Spring中使用属性文件以及相关知识点。 1. **属性文件格式** 属性文件通常以`.properties`为扩展名,例如`application.properties`或`database.properties`。文件中的键值对以等号`=`分隔,如...

    bboss ioc配置文件中使用外部属性文件介绍

    当需要使用外部属性文件时,我们可以创建一个独立的`.properties`文件,如`config.properties`,这个文件可以包含应用程序的配置参数,如数据库连接字符串、服务器端口等。 在`config.properties`中,键值对的形式...

    SSH笔记-通过property-placeholder使用外部属性文件

    本笔记将专注于Spring框架中的一个关键特性——通过`property-placeholder`使用外部属性文件,这在实际项目中非常常见,能够有效地实现配置的解耦和管理。 首先,让我们理解`property-placeholder`的概念。在Spring...

    说说在Spring中如何引用外部属性文件的方法

    然后,在 Spring 配置文件中,我们可以使用 PropertyPlaceholderConfigurer 来引用外部属性文件: ``` &lt;!-- 引入外部属性文件 --&gt; &lt;bean class="org.springframework.beans.factory.config....

    spring,配置文件从属性文件读取JDBC连接的相关参数

    在Spring框架中,配置...总之,Spring框架允许我们在不修改代码的情况下,通过外部属性文件动态配置JDBC连接参数,提高了应用的可配置性和可维护性。理解并熟练运用这一特性对于任何Spring开发者来说都是至关重要的。

    spring 的属性管理

    Spring支持根据激活的profile加载特定的属性文件,如`application-{profile}.properties`。这使得在不同环境中(例如开发、测试、生产)可以使用不同的配置。 6. **Cloud Config Server** 在分布式系统中,Spring...

    Spring动态加载配置文件

    `PropertyPlaceholderConfigurer`是Spring早期版本中处理属性文件的工具,而`@PropertySource`则是从Spring 3.1引入的新特性,它们都可以用来从外部属性文件中读取值并注入到bean中。 1. `...

    18 Spring IoC容器如何读取应用外部的xml,txt,图形或者属性文件?慕课专栏(1)1

    总结起来,Spring提供了多种方式来读取应用外部的配置文件,如`FileSystemXmlApplicationContext`用于读取XML配置,`PropertyPlaceholderConfigurer`用于处理属性文件。理解这一机制有助于我们更灵活地管理应用的...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加灵活和可维护。下面我们将详细探讨`PropertyPlaceholderConfigurer`的工作原理、使用方法以及其在实际开发中的应用。...

    Spring配置三种数据源及从属性文件中读取DB连接四要素

    为了提高代码的可维护性和灵活性,通常会将数据库连接信息存储在外部属性文件中,如`application.properties`或`application.yml`。Spring Boot支持自动配置,可以从这些文件中自动加载配置。以下是在`application....

    Spring文件的上传和下载

    Spring允许我们从外部属性文件中加载配置,通常使用`@Value`或`@ConfigurationProperties`注解。例如,有一个名为`application.properties`的文件,其中包含文件存储路径: ```properties file.upload.path=/...

    spring读取配置文件

    而`placeholder`允许你使用`${property_name}`占位符,这些值可以从属性文件(如`application.properties`)中读取,这样可以在不修改XML配置的情况下轻松更改配置。 例如,你可以在配置文件中定义一个profile: `...

    Spring Boot多模块配置文件读取

    - 使用`spring.config.location`属性可以指定额外的配置文件位置,例如:`--spring.config.location=classpath:/module1.properties,classpath:/module2.properties`。 3. **命名规则与优先级** - Spring Boot...

    spring 配置文件 归类

    `&lt;property&gt;`标签用来设置bean的属性,使用`${}`表示从外部属性文件中读取值。 #### Bean引用 - `&lt;ref bean="..."/&gt;`: 引用另一个bean,可以从当前或导入的XML文件中查找。 - `&lt;ref local="..."/&gt;`: 只在当前XML...

    Spring Boot读取配置文件常用方式

    Spring Boot默认支持两种主要的属性文件格式:`application.properties`和`application.yml`。前者使用键值对形式,后者使用YAML(YAML Ain't Markup Language)语法,提供更丰富的结构化数据表示。 2. **外部化...

    深入理解Spring Boot属性配置文件

    当启动Spring Boot应用时,可以使用命令行参数来覆盖配置文件中的属性。例如,通过`--server.port=8888`,可以将服务器的端口号设置为8888,而不是配置文件中定义的默认值。这种方式特别适用于运行环境的不同需求,...

    Spring 配置学习文件

    1. **PropertyPlaceholderConfigurer**:这个bean是用来加载外部属性文件`dataResources.properties`,它允许我们在配置中使用占位符 `${...}`,这些占位符会被对应的属性值替换。这样可以使得数据库连接信息等敏感...

    尚硅谷佟刚Spring4代码及PPT.rar

    代码及ppt涵盖 Spring4.0 的所有核心内容:在 Eclipse 中安装 SpringIDE 插件、IOC & DI、在 Spring 中配置 Bean、自动装配、Bean 之间的关系(依赖、继承)、Bean 的作用域、使用外部属性文件、SpEL、管理 Bean 的...

Global site tag (gtag.js) - Google Analytics