zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
  • 相关阅读:
    sqlserver 动态行转列
    c#指定日期格式
    The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
    Codeforces Round #410 (Div. 2)A B C D 暴力 暴力 思路 姿势/随机
    Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) A B C D 暴力 水 二分 几何
    poj 2096 概率dp
    HDU 4405 概率dp
    Codeforces Round #408 (Div. 2) A B C 模拟 模拟 set
    Codeforces Round #301 (Div. 2)A B C D 水 模拟 bfs 概率dp
    HDU 1005 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/super-yu/p/8527041.html
Copyright © 2011-2022 走看看