使用注解1
1.resouse中新建application.proprities
jdbc.username=root
jdbc.password=123
jdbc.driverClassName=fuck
jdbc.url=11111111
2编写配置类
@ConfigurationProperties(prefix = "jdbc")
@Data
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
// ... 略
// getters 和 setters
}
@ConfigurationProperties表示启用注解
@Data可以省去getter及setter等方法
3使用注解方式1
第一种方式
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
@Bean
public DataSource dataSource(JdbcProperties jdbc) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(jdbc.getUrl());
dataSource.setDriverClassName(jdbc.getDriverClassName());
dataSource.setUsername(jdbc.getUsername());
dataSource.setPassword(jdbc.getPassword());
return dataSource;
}
}
@Configuration启动容器+@Bean注册Bean,@Bean下管理bean的生命周期
@EnableConfigurationProperties(JdbcProperties.class)表示启用注解,直接JdbcProperties jdbc就可以使用。
第二种方式
@Autowired
JdbcProperties jdbc;
增加@Autowired
第三种方式
通过构造函数注入
private JdbcProperties jdbc;
public JdbcConfig(JdbcProperties jdbc) {
this.jdbc = jdbc;
}
使用注解2
1.resouse中新建application.proprities
jdbc.username=root
jdbc.password=123
jdbc.driverClassName=fuck
jdbc.url=11111111
2
@Configuration
public class JdbcConfig {
@Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
return new DruidDataSource();
}
}
此后就可随意Autowired使用了
1.根据@Bean找到@ConfigurationProperties(prefix = "jdbc"),再看返回值类型。
适合于只在一处使用的情况,会根据返回值找到相关应的setter方法,如果一致则注入。