佟刚老师《Spring4视频教程》学习笔记(8)

时间:2022-08-23 13:19:45

这一部分讲解了使用外部属性文件配置 bean,相关的思维导图讲解在这一部分。
佟刚老师《Spring4视频教程》学习笔记(8)
使用外部属性文件配置 bean。
在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如:文件路径、 数据源配置信息等)。 而这些部署细节实际上需要和 Bean 配置相分离
Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器, 这个处理器允许用户将 Bean 配置的部分内容外移到属性文件中。可以在 Bean 配置文件里使用形式为 ${var} 的变量,PropertyPlaceholderConfigurer 从属性文件里加载属性, 并使用这些属性来替换变量。
Spring 还允许在属性文件中使用 ${propName},以实现属性之间的相互引用。

下面是一个小的案例,我们引入 c3p0 的数据源。
步骤如下:
1、先引入相关的 jar 包
佟刚老师《Spring4视频教程》学习笔记(8)
2、配置

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="jdbcUrl" value="${jdbcUrl}"></property>
        <property name="driverClass" value="${driverClass}"></property>
    </bean>

3、编写测试代码

@Test
    public void testDataSource() throws SQLException{
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        DataSource ds = (DataSource) ctx.getBean("dataSource");
        System.out.println(ds.getConnection());
    }

下面我们引入属性文件。
首先我们须要添加一个命名空间 context 。

<context:property-placeholder location="classpath:db.properties"/>

属性文件示例:

user=root
password=123456
jdbcUrl=jdbc:mysql:///mybatis
driverClass=com.mysql.jdbc.Driver
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="jdbcUrl" value="${jdbcUrl}"></property>
        <property name="driverClass" value="${driverClass}"></property>
    </bean>

佟刚老师《Spring4视频教程》学习笔记(8)