第二章(三自学) 核心配置读取外部资源文件

工程:demo-javaconfig2

第二部分 使用Java配置读取外部资源配置文件

Spring的Java配置方式,还可以读取外部的资源配置文件
1、通过@PropertySource可以指定读取的配置文件
2、通过@Value注解完成注入获取值

示例实现步骤
1、创建工程导入依赖
2、添加外部资源配置文件
3、编写SpringConfig,用实例化Spring容器
4、编写测试方法
step1-->导入依赖

    <dependency>  
        <groupId>commons-dbcp</groupId>  
        <artifactId>commons-dbcp</artifactId>  
        <version>1.4</version>  
    </dependency>

step2--> db.properties

把原来工程中的db.properties放到Spring Boot工程的resource中

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatisdb
jdbc.username=root
jdbc.password=123456

step3--> SpringConfig
以配置数据源为例
@PropertySource,加载指定的属性文件*.proerties
ignoreResourceNotFound,指定的配置文件不存在是否报错,默认是false
注解@Value,获取资源文件中的属性值,el表达式中为proerties中的key

package com.neuedu.demo.config;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;


@Configuration// 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "com.neuedu.demo")// 配置扫描包
@PropertySource(value = { "classpath:db.properties" }, ignoreResourceNotFound = true)
public class SpringDataSourceConfig {
//读取外部的资源配置文件
@Value("${jdbc.url}")
private String jdbcUrl;

@Value("${jdbc.driver}")
private String jdbcDriverClassName;

@Value("${jdbc.username}")
private String jdbcUsername;

@Value("${jdbc.password}")
private String jdbcPassword;

@Bean(destroyMethod = "close")
public DataSource dataSource() {
    BasicDataSource BasicDataSource = new BasicDataSource();
// 数据库驱动
    BasicDataSource.setDriverClassName(jdbcDriverClassName);
// 相应驱动的jdbcUrl
    BasicDataSource.setUrl(jdbcUrl);
// 数据库的用户名
    BasicDataSource.setUsername(jdbcUsername);
// 数据库的密码
    BasicDataSource.setPassword(jdbcUsername);
// 连接初始值,连接池启动时创建的连接数量的初始值  默认值是0
    BasicDataSource.setInitialSize(3);
// 最大空闲值,当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 ,0时无限制  默认值是8
    BasicDataSource.setMaxIdle(5);
// 最小空闲值,当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请  默认值是0
    BasicDataSource.setMinIdle(3);;
// 连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制   默认值是8
    BasicDataSource.setMaxActive(15);;
return BasicDataSource;
}

}

step 4---->编写测试用例

package com.neuedu.demo.config;

import javax.sql.DataSource;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;


public class TestSpringConfig {
     
public static void main(String[] args) {
    
// 通过Java配置来实例化Spring容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringDataSourceConfig.class);
   
DataSource ds = context.getBean(DataSource.class);
System.out.println(ds.getClass());
System.out.println(ds.getClass().getName());
  
// 销毁该容器
context.destroy();
}

}

猜你喜欢

转载自blog.csdn.net/weixin_34245169/article/details/86825861