目录
1、spring在xml配置bean时引入外部的properties属性文件内容作用是什么?
2、引入配置文件步骤
2.1、首先创建一个java类MyDataSource,主要包含四个属性。
2.2、准备一个myDataConfig.properties属性文件,里面配置MyDataSource类中需要的属性值
2.3、我们用xml配置来讲myDataConfig.properties属性文件中的值引入到MyDataSource类中
2.4、写个测试类测试一下结果
2.5、配置属性增加前缀
本文章主要介绍spring在xml配置bean时如何引入外部的properties属性文件内容,代码演示 + 步骤分析,注意事项以及细节问题改进方法等。
1、spring在xml配置bean时引入外部的properties属性文件内容作用是什么?
例如数据库连接配置,如果不引入外部属性文件,那么我们就需要在xml了写死数据库的配置信息信息,例如链接地址、用户名密码等。若有多处引用,后期需要修改就要去多处修改配置文件,非常不好维护。现在我们不写死,我们将配置信息配置到属性文件当中,若后续有需要修改,我们直接修改属性文件中的信息就可以了。而且属性文件中的配置信息可以被spring多出引用,便于维护。
2、引入配置文件步骤
2.1、首先创建一个java类MyDataSource,主要包含四个属性。
2.2、准备一个myDataConfig.properties属性文件,里面配置MyDataSource类中需要的属性值
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/spring6
userName=rootMyUsername
password=123
2.3、我们用xml配置来讲myDataConfig.properties属性文件中的值引入到MyDataSource类中
<?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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--第一步:引入context命名空间--><!--第二步:使用标签context:property-placeholder的location属性来指定配置文件的路径。location默认从类的根目录下开始加载资源--><context:property-placeholder location="myDataConfig.properties"></context:property-placeholder><bean id="MyDataSourceBean" class="com.linctSpring6.diProperties.MyDataSource"><property name="driver" value="${driver}"></property><property name="url" value="${url}"></property><property name="userName" value="${userName}"></property><property name="password" value="${password}"></property></bean>
</beans>
第一步:引入context命名空间xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
第二步:
使用标签context:property-placeholder的location属性来指定配置文件的路径
location默认从类的根目录下开始加载资源
第三步:
用 value="${key}"的方式来引入外部属性文件
注意:value="${key}"中的key与外部属性文件中的配置key必须保持一致
2.4、写个测试类测试一下结果
public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("di-properties.xml");Object myDataSourceBean = applicationContext.getBean("MyDataSourceBean");System.out.println(myDataSourceBean);}
通过日志我们可以看到,我们将外部属性的配置引入到了bean当中
但是有一点需要注意的是,我们配置了一个userName=rootMyUsername,但是日志却显示userName=1。
原因:spring在识别${}来加载数据时,会优先加载windows系统环境变量的配置信息。在我的电脑中我的系统环境变量配置的userName值为1。
因此在很多时候,我们看到的配置信息都不会直接写名字,而是在前面加个jdbc.或者加公司前缀名来区分。
2.5、配置属性增加前缀
下面我们修改属性文件,加一个jdbc前缀。
xml的配置中也需要配合属性文件做修改。
我们再重新运行以下测试类,看到打印的日志正是我们想要的效果。
以上就是我对spring如何引入外部properties属性文件的理解啦,希望能帮到大家,有问题的地方欢迎大家一起讨论!
后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤