(1)@PropertySource注解读取配置文件:
通过自定义配置文件方式配置数据源信息
通过@PropertySource注解读取配置文件、
①添加Druid数据源依赖
<!--Druid数据源依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
②创建Properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false jdbc.username=root jdbc.password=LByf2544
③创建配置类
/** * 数据源的JDBC配置类 */ @Configuration @PropertySource("classpath:/jdbc.properties") //加载指定的配置文件 public class JdbcConfiguration { @Value("${jdbc.driverClassName}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; /** * 实例化Druid */ @Bean public DataSource getDataSource() { DruidDataSource source = new DruidDataSource(); source.setPassword(this.password); source.setUsername(this.username); source.setUrl(this.url); source.setDriverClassName(this.driverClassName); return source; } }
(2)通过@ConfigurationProperties注解读取配置信息
①创建配置信息实体类
/** * JDBC配置信息的属性类 */ @ConfigurationProperties(prefix = "jdbc") //是Spring Boot的注解,不能读取其他的配置文件,只能读取Spring Boot的Application public class JdbcProperties { private String driverClassName; private String url; private String username; private String password; public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
②修改配置类
/** * 数据源的JDBC配置类 */ @Configuration //@PropertySource("classpath:/jdbc.properties") //加载指定的配置文件 @EnableConfigurationProperties(JdbcProperties.class) //指定加载哪个配置属性类 public class JdbcConfiguration { /*@Autowired*/ private JdbcProperties jdbcProperties; public JdbcConfiguration(JdbcProperties jdbcProperties) { this.jdbcProperties = jdbcProperties; } /** * 实例化Druid */ @Bean public DataSource getDataSource() { DruidDataSource source = new DruidDataSource(); source.setPassword(this.jdbcProperties.getPassword()); source.setUsername(this.jdbcProperties.getUsername()); source.setUrl(this.jdbcProperties.getUrl()); source.setDriverClassName(this.jdbcProperties.getDriverClassName()); return source; }
实例化Druid使用@ConfigurationProperties(prefix = "jdbc")即可 ,jdbcProperties实体类可省略,@EnableConfigurationProperties(JdbcProperties.class)也可省略。
/** * 数据源的JDBC配置类 */ @Configuration public class JdbcConfiguration { @Bean @ConfigurationProperties(prefix = "jdbc") public DataSource getDataSource() { DruidDataSource source = new DruidDataSource(); return source; } }