• Spring的PropertyPlaceholderConfigurer


    自己的总结

        在项目中,为了对系统的配置信息进行统一管理,一般是将配置信息写在xxx.properties的文件中,在系统初始化的时候,自动读取该配置文件中的键值信息,实现资源配置的初始化

         1.PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现

      2.PropertyPlaceholderConfigurer起的作用就是将xxx.properties中定义的属性和值,在java类或xml中通过占位符的形式获取xxx.properties文件中定义的属性值

    具体用法

    1.例如xxx.properties配置中的信息如下:

    #数据库数据库相关
    druid.driverClassName=com.mysql.jdbc.Driver
    
    druid.url=jdbc:mysql://localhost:3209/demo?useUnicode=true&characterEncoding=utf-8&generateSimpleParameterMetadata=true
    
    druid.username=root
    druid.password=demo123

    2.PropertyPlaceholderConfigurer在Spring.xml中的配置方法

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


    3.应用

    (1)在spring.xml中数据库连接池的配置中的使用

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close" lazy-init="false">
        <property name="url" value="${druid.url}" />
        <property name="username" value="${druid.username}" />
        <property name="password" value="${druid.password}" />
        <property name="driverClassName" value="${druid.driverClassName}" />
        <property name="minIdle" value="${druid.minIdle}" />
        <property name="initialSize" value="${druid.initialSize}" />
        <property name="maxWait" value="${druid.maxWait}" />
        <property name="maxActive" value="${druid.maxActive}" />
        <property name="testWhileIdle" value="${druid.testWhileIdle}" />
        <property name="validationQuery" value="${druid.validationQuery}" />
        <property name="filters" value="${druid.filters}" />
    </bean>


    (2)在java类中的使用

    public class DatasourceUtil {
        @Value("${druid.driverClassName}")
        private String className;
    
        @Value("${druid.url}")
        private String url;
    
        @Value("${druid.username}")
        private String username;
    
        @Value("${druid.password}")
        private String password;
    
        public JdbcTemplate getJdbcTemplate() {
            DriverManagerDataSource ds = new DriverManagerDataSource(url, username, password);
            ds.setDriverClassName(className);
            JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
            return jdbcTemplate;
        }
    
    }
  • 相关阅读:
    Android动画系列
    Handler处理机制
    cp命令覆盖文件时不用按Y来确认的方法
    phantomjs
    无界面模式
    win10上安装keras
    MongoDB 排序
    MongoDB 条件操作符
    MongoDB 对象操作
    SQL 和 NoSQL 的区别
  • 原文地址:https://www.cnblogs.com/super-yu/p/8527041.html
Copyright © 2020-2023  润新知