`
huangkun1123
  • 浏览: 23778 次
  • 性别: Icon_minigender_1
  • 来自: 程序帝国
社区版块
存档分类
最新评论

spring中使用外部属性文件

阅读更多

在进行数据源的连接URL,用户名,密码这些配置的时候,可以直接在spring的配置文件中配置

,但是另一种更好的方法是将这些配置信息独立到一个外部属性文件中,并在spring配置文件

中通过${url}等占位符引用属性文件中的属性项,这种配置方式的好处如下:
1.减少维护的工作量。
2.使部署更简单。
spring为我们提供了一个PropertyPlaceholderConfigurer,它能够使bean在配置时引用外部属

性文件。PropertyPlaceholderConfigurer实现了BeanFactoryPostProcessorBean接口,因此也

是一个Bean工厂后处理器。

以下通过一个实例说明:
现有一个pojo类:org.huang.connection.java
public class Connection {
 public String url; 
 public String username;
 public String password;

        //set/get方法省略
}

在相同目录下建立connection.property文件,其内容如下:
url=jdbc:oracle:thin:@localhost:1521
username=zhansan
password=lisi

在工程中引入spring的包,然后在applicationContext.xml中利用PropertyPlaceholderConfigurer引入这个配置文件,并在配置Connection Bean时通过占位符引用属性文件中的属性项。具体配置如下:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
       <list>
         <value>classpath:org/huang/connection.properties</value>
       </list>
    </property>
    <property name="fileEncoding" value="utf-8"></property>
</bean>
<bean id="connection" class="org.huang.Connection">
   <property name="url" value="${url}"></property>
   <property name="username" value="${username}"></property>
   <property name="password" value="${password}"></property>
</bean>

在以上配置中,通过locations属性制定属性文件的位置。locations属性的类型为Resource[],所以用户可以在地址前指定资源类型前缀。如果要引用多个属性文件,只需添加多个<value>配置项即可。

然后写client.java,内容如下:
public static void main(String[] args) {
  
  BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
        Connection connection=(Connection) factory.getBean("connection");
       
        System.out.println(connection.getUrl());
        System.out.println(connection.getUsername());
        System.out.println(connection.getPassword());
 }

可以看到控制台打印如下:
jdbc:oracle:thin:@localhost:1521
zhansan
lisi

PropertyPlaceholderConfigurer其他属性
除了必不可少的locations属性外,PropertyPlaceholderConfigurer还有一些常用的属性,在一些高级应用中,这些属性可以提供帮助:

—  location:如果只有一个属性文件,也通过使用这个属性进行设置,locations属性用于设置多个属性文件;

—  fileEncoding:属性文件的编码格式,Spring缺省使用操作系统默认编码读取属性文件,如果属性文件采用了特殊编码,需要通过该属性显式指定;

—  order:如果配置文件中定义了多个PropertyPlaceholderConfigurer,通过该属性指定调用的顺序;

—  placeholderPrefix:在这上面的例子中,我们通过${属性名}引用属性文件中的属性项,其中“${”为默认的占位符前缀,可以根据需要改为其他的前缀符;

—  placeholderSuffix:占位符后缀,默认为“}”。

分享到:
评论

相关推荐

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

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

    JAVA Spring使用外部属性文件

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

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

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

    spring使用属性文件

    而`@PropertySource`注解可以直接在类级别上声明,指示Spring从指定的属性文件中读取属性。 3. **环境特定配置** 通过使用`spring.profiles.active`属性,我们可以为不同的环境(如开发、测试、生产)指定不同的...

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

    在上面的配置中,我们使用 PropertyPlaceholderConfigurer 来引入外部属性文件 system.properties,然后在数据源 Bean 中使用占位符 ${} 来引用属性文件中的属性项。 PropertyPlaceholderConfigurer 属性说明 ...

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

    通过以上步骤,我们可以利用Spring4的`property-placeholder`特性,将配置信息从主配置文件中分离出来,存储在外部属性文件中,使得配置管理更加灵活和安全。这一实践对于大型项目来说至关重要,因为它提高了代码的...

    spring学习手册

    - **使用外部属性文件**:如何在Spring中使用外部属性文件。 - **spEL**:Spring Expression Language的介绍和使用场景。 - **IOC容器中Bean的生命周期**:Bean从创建到销毁的过程。 - **Spring 4.x新特性**:泛型...

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

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

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

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

    spring 的属性管理

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

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

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

    Spring属性占位符PropertyPlaceholderConfigurer的使用

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

    Spring Boot多模块配置文件读取

    - Spring Boot提供了`@ConfigurationProperties`注解,可以将配置文件中的键值对映射到Java对象的属性上,增强代码的可读性。 - 创建一个类,用`@Component`或`@Configuration`注解,并使用`@...

    SpringCloud中文文档

    引导上下文负责从外部源加载配置属性,还解密本地外部配置文件中的属性。 在使用 Spring Cloud 时,需要注意到引导上下文和主应用程序上下文的区别,引导上下文使用与主应用程序上下文不同的外部配置约定。可以通过...

    Spring动态加载配置文件

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

    Spring文件的上传和下载

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

    spring 配置文件 归类

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

    spring读取配置文件

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

    Spring中自定义session管理,SpringSession的使用

    1. 添加依赖:在Spring Boot项目中,可以通过添加SpringSession的相关依赖到`pom.xml`或`build.gradle`文件中,比如选择Redis作为存储,添加`spring-boot-starter-data-redis`和`spring-session-data-redis`依赖。...

    Spring 配置学习文件

    这些值实际上是通过`PropertyPlaceholderConfigurer`从外部属性文件中获取的。 3. **TransactionManager**:这里配置的是`HibernateTransactionManager`,它是Spring对Hibernate事务管理的支持。`sessionFactory`...

Global site tag (gtag.js) - Google Analytics