Springboot配置
方法一
- 新建jdbc.properties文件,写入配置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/book
jdbc.username=root
jdbc.password=root
- 创建配置类JdbcConfig.java,使用@Value注解将属性注入,并进行Bean配置
//表明当前类为配置类
@Configuration
// 指定属性配置文件的路径
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
//属性注入值
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.url}")
String url;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
// 将dataSource方法声明分为一个注册的Bean的方法 Spring 会自动调用该方法 将方法的返回值加入到Spring容器中
@Bean
public DataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
- 编写Controller进行测试,使用@Autowired注解注入dataSource。
@RestController
public class HelloController {
@Autowired
private DataSource dataSource;
@RequestMapping("/hello")
public String Hello() {
System.out.println("dataSource :"+dataSource);
return "helloSpringBoot!";
}
}
- 测试结果
方法二
- 在application.properties里面写入配置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/book
jdbc.username=root
jdbc.password=123456
- 创建JdbcProperties.java配置类,添加get和set方法。
//表明当前类是一个属性读取类 所读取的配置文件的名称必须是application.properties
//同时prefix 表明所有的属性的前缀
@ConfigurationProperties(prefix = "jdbc")
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;
}
}
- 使用set方法注入属性
//表明当前类为配置类
@Configuration
// 指定属性配置文件的路径
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig1 {
@Bean
public DataSource dataSource(JdbcProperties jdbc){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(jdbc.getDriverClassName());
dataSource.setUrl(jdbc.getUrl());
dataSource.setUsername(jdbc.getUsername());
dataSource.setPassword(jdbc.getPassword());
return dataSource;
}
}
- 测试
第三种
-
删除 JdbcProperties中的@ConfigurationProperties(prefix = “jdbc”)
-
删除@EnableConfigurationProperties(JdbcProperties.class)注解
-
在方法上添加@ConfigurationProperties(prefix = “jdbc”)
@Configuration
// 指定属性配置文件的路径
//@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig1 {
@Bean
@Co nfigurationProperties(prefix = "jdbc")
public DataSource dataSource(){
return new DruidDataSource();
}
}