Spring 读取properties(配置文件)内容

Spring 读取properties(配置文件)内容

使用配置

jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://mysql:3306/xxx
jdbc.username=用户
jdbc.password=密码

xml 注入

<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 装配连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <!-- 注入相关的连接属性 -->
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

@Value + @PropertySource 注入

多个properties(配置文件)时:@PropertySource({"配置文件","配置文件"})

@Configuration
@PropertySource("jdbc.properties")
@MapperScan(basePackages = "org.example.dao")
public class AppConfig {
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DruidDataSource getDruidDataSource() throws Exception {
        DruidDataSource source = new DruidDataSource();
        source.setUrl(url);
        source.setUsername(username);
        source.setPassword(password);
        return source;
    }
}

@Value + Bean 注入

创建一个用于读取配置文件的Bean

<!-- spring加载配置文件 -->
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
        <list>
            <value>classpath:jdbc.properties</value>
            <value>classpath:多个.properties</value>
        </list>
    </property>
</bean>
@Value("#{configProperties.url}")
private String url;

@Value("#{configProperties['jdbc.username']}")
private String username;

参考文章:Spring读取properties内容