spring学习 十六 spring加载属性文件

Posted 阿瞒123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring学习 十六 spring加载属性文件相关的知识,希望对你有一定的参考价值。

第一步:创建一个properties文件,以数据库链接作为实例

db.properties

jdbc.url=jdbc:mysql://192.168.153.128:3306/mybaties?characterEncoding=utf-8
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=com.mysql.jdbc.Driver
jdbc.password=123456

 

第二步在spring配置文件加入context的约束,并使用<context:property-placeholder/>标签加载配置文件,多个配置文件用逗号隔开

 <context:property-placeholder location="classpath:applicationContext.xml"/>

 

第三步把db.properties文件中的内容读入到 封装数据的类的属性中

 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
               <property name="driverClassName" value="${jdbc.driver}"></property>
               <property name="url" value="${jdbc.url}"></property>
               <property name="username" value="${jdbc.username}"></property>
               <property name="password" value="${jdbc.password}"></property>
       </bean>

此时要注意一个问题就是在配置mybatis扫描mapper文件时,需要注意,要不使用MapperScannerConfigurer类的sqlSessionFactory属性,使用sqlSessionFactoryBeanName属性,因为SqlSessionFactory因为这时不会立即初始化sqlSessionFactory,传入的只是名字,非bean, 所以不会引发提前初始化问题。但是我使用sqlSessionFactoryBeanName直接报错了,原因就是加载配置文件比较玩,SqlSessionFactory中的好多属性还没有被注入

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.spring.mapper" ></property>
            <!-- <property name="sqlSessionFactory" ref="factory"></property> -->
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>

  </bean>

 

 

在被Spring管理的类中的属性,可以通过@Value(“${key}”)取出properties文件中的内容来对被spring管理的类的属性赋值

(1) 添加注解扫描

<context:component-scan base-package="com.bjsxt.service.impl"></context:component-scan>
 

(2)在类中添加   key 和变量名可以不相同,变量类型任意,只要保证 key 对应的 value 能转换成这个类型就可以.

 

@Value("${my.demo}")
private String test;

 

以上是关于spring学习 十六 spring加载属性文件的主要内容,如果未能解决你的问题,请参考以下文章

Spring官网阅读(十六)Spring中的数据绑定

Spring框架学习笔记

10Spring 源码学习 ~ Bean 的加载步骤详解

如何使用 Spring 重新加载属性?

Spring学习(十六)----- Spring自动代理创建者

Spring注解驱动开发--属性赋值