`

spring配置中调用properties文件

阅读更多

system.properties


database.url=jdbc:mysql://localhost/smaple
database.driver=com.mysql.jdbc.Driver
database.user=root
database.password=root

2.applicationContext.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>>classpath:system.properties</value>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url">
<value>${database.url}</value>
</property>
<property name="driverClassName">
<value>${database.driver}</value>
</property>
<property name="username">
<value>${database.user}</value>
</property>
<property name="password">
<value>${database.password}</value>
</property>

</bean>
</beans>

当放入多个配置文件时
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>>classpath:system1.properties</value>
<value>>classpath:system2.properties</value>
</list>
</property>
</bean>

还可以这样
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:*.properties</value>
</list>
</property>
</bean>

 

 

在Spring中,使用PropertyPlaceholderConfigurer和PropertyOverrideConfigurer可以在XML配置文件中加入外部属性文件
但使用这种方式,有一些需要注意的地方

1.首先在主类中,需要使用ClassPathXmlApplicationContext来读取spring配置xml文件
如:

ApplicationContext context = new ClassPathXmlApplicationContext("example4/appcontext.xml");
HelloWorld hw = (HelloWorld)context.getBean("fileHelloWorld");
log.info(hw.getContent());

直接以beanFactory方式,是无法使用PropertyPlaceholderConfigurer或PropertyOverrideConfigurer的
如下方式不行:
Resource resource = new ClassPathResource("example4/appcontext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
HelloWorld hw = (HelloWorld) factory.getBean("fileHelloWorld");
log.info(hw.getContent());

2.PropertyOverrideConfigurer需要考虑bean的名称
如下是正确配置:
appcontext.xml:
<bean name="fileHelloWorld" class="example4.HelloWorld">
    <constructor-arg>
        <ref bean="fileHello"/>
    </constructor-arg>
    <property name="statusname">
        <value>${fileHelloWorld.statusname}</value>
    </property>
</bean>

<bean id="propertyConfigurer"
      class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
    <property name="location" value="classpath:example4/helloworld.properties"/>
</bean>

helloworld.properties:
fileHelloWorld.statusname=this is status Name;

如果少了${fileHelloWorld.statusname}中少了Bean名称fileHelloWorld,会导致错误发生
这应该是种强制某个配置是属性某个Bean

3.PropertyPlaceholderConfigurer的配置不需要考虑Bean的名称,直接配置就可以了
配置方式和PropertyOverrideConfigurer类似
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    spring 配置文件 归类

    在Spring框架中,配置文件是核心组成部分,它们用于定义bean的定义、依赖关系以及各种配置信息。本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...

    Spring中配置和读取多个Properties文件的方式方法

    在Spring框架中,配置和读取多个Properties文件是常见的需求,尤其在大型系统中,不同模块的配置往往被拆分到不同的文件中以保持代码的整洁性和可维护性。本篇文章将详细介绍如何在Spring中实现这一功能。 首先,让...

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它允许我们在程序运行时改变或更新配置,而无需重启应用。这在开发和生产环境中都具有很高的实用价值,尤其是在配置需要频繁调整或者希望实现热更新的场景下。...

    spring中properties加密

    本文将深入探讨如何在Spring项目中实现properties文件的加密。 1. **理解Properties文件** Spring框架广泛使用`properties`文件来存储配置信息。这些文件通常是纯文本格式,容易被读取,从而增加了安全性风险。...

    java读取properties配置文件

    在Java编程中,`properties`文件是一种常用的存储配置信息的方式,它以键值对的形式组织数据,便于程序在运行时动态获取和修改配置。本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`...

    加载properties配置文件的几种方法

    首先,在Spring的配置文件(如`applicationContext.xml`)中定义一个bean,然后指定properties文件的位置: ```xml &lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; ...

    Spring Boot的properties配置文件读取

    在Spring Boot应用中,通常使用application.properties或application.yml文件来存储配置信息。这些配置文件可以被放置在多个位置,包括项目内部、环境变量以及命令行参数中。Spring Boot利用一系列的加载器和监听器...

    Spring 集成 Kafka的配置文件及代码讲解

    接下来,我们来配置Spring Boot的`application.yml`或`application.properties`文件以连接到Kafka集群。这里是一个示例配置: ```yaml spring: kafka: bootstrap-servers: localhost:9092 # Kafka服务器地址 ...

    Spring 配置学习文件

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

    springmvc核心jar包及配置文件

    在Spring MVC应用中,通常有web.xml(部署描述符)和spring-mvc.xml(Spring MVC配置文件)两个重要配置文件。web.xml中配置DispatcherServlet,而spring-mvc.xml则配置Spring MVC的各种组件,如HandlerMapping、...

    sftp直接以url模式读取-----------包括servlet如何借用springproperties取文件

    "sftp直接以url模式读取-----------包括servlet如何借用springproperties取文件" 提到的是在Java开发中,如何通过SFTP(Secure File Transfer Protocol)协议以URL模式读取远程文件,并结合SpringProperties来配置和...

    Spring加载配置和读取多个Properties文件的讲解

    Properties 文件是一种常用的配置文件格式,用于存储应用程序的配置信息,例如数据库连接信息、消息服务配置信息、远程调用配置信息等。通常情况下,一个系统中会存在多个 Properties 文件,每个文件都包含着特定的...

    详解SpringMVC加载配置Properties文件的几种方式

    在Spring Boot项目中,配置Properties文件更加简单,可以通过`application.properties`或`application.yml`进行配置,并且Spring Boot会自动处理这些配置。例如: ```properties spring.datasource.url=jdbc:mysql:...

    springcloud处理文件上传

    这样,我们便成功地在Spring Cloud环境中实现了文件上传功能,同时利用了Feign的声明式调用和Zuul的路由与负载均衡能力。 总的来说,通过Spring Cloud的组件,我们可以构建一个高效且可扩展的文件上传系统,它具有...

    读取配置文件工具类.rar

    本压缩包包含两个工具类,分别用于读取`.yml`和`.properties`格式的配置文件,这两种格式都是Java开发中常见的配置文件类型。 首先,我们来看`.properties`配置文件。这种格式的文件历史较为悠久,它的语法简单,每...

    读取以及修改properties文件

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以.properties为扩展名。这些文件包含了应用程序运行时所需的键值对,如数据库连接字符串、API密钥或系统设置等。本篇将深入探讨如何读取和修改...

    用enum实现单例模式的方法来读取配置文件

    在实际开发中,根据项目需求,还可以考虑使用Spring框架的`@ConfigurationProperties`注解来绑定配置文件,实现更强大的类型安全和属性映射功能。不过,对于简单的配置管理,枚举单例模式已经足够实用。

    java 动态修改Properties,src下或者指定路径

    7. 使用`prop.setProperty(key, value)`设置或更新Properties中的键值对。 8. `prop.store(fos, "Update '" + key + "' value")`将修改保存回文件,并添加一个描述性注释。 9. 最后,关闭`fos`以确保所有更改都被...

    java实现properties文件读取

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以键值对的形式存在。这些文件在程序运行时可以被加载并解析,以便应用根据配置内容进行动态行为调整。本篇将深入探讨如何使用Java来实现Properties...

    java配置文件修改读取工具类,包括yml和properties类型文件

    1. 加载Properties文件:使用`Properties`类的`load()`方法,从输入流中加载配置文件。 2. 读取配置:通过调用`Properties`类的`getProperty()`方法,根据键获取值。 3. 修改配置:使用`setProperty()`方法设置新的...

Global site tag (gtag.js) - Google Analytics