以注入连接池属性为例,整理的SpringBoot的属性注入方式
1. 编写application.properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cqc
jdbc.username=root
jdbc.password=root
2. 编写JdbcProperties类
@ConfigurationProperties(prefix = "jdbc") //编写配置文件的属性,声明前缀
@Data //使用lombok插件完成getter,setter等方法,编译时生成
public class JdbcPropertis {
String driverClassName;
String url;
String username;
String password;
}
3. 使用JdbcProperties类,可以通过注解@Autowired注入,或者@EnableConfigurationProperties注入,或者使用构造函数传参的方式注入.
以下为启用属性配置的方式注入
@Configuration //配置类,代替了spring中的xml文件
@EnableConfigurationProperties(JdbcPropertis.class) //启用属性配置注入
public class JdbcConfig {
@Bean //将返回的方法加入Bean容器,代替了<bean>标签,方法的返回值就是要配置的对象
public DataSource dataSource(JdbcPropertis prop){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(prop.getDriverClassName());
druidDataSource.setUrl(prop.getUrl());
druidDataSource.setUsername(prop.getUsername());
druidDataSource.setPassword(prop.getPassword());
return druidDataSource;
}
}
4. 测试是否注入成功
debug启动,访问路径localhost:8080/hello
获取到配置文件中的信息,注入成功
5. 改进
仅给使用属性的方法上加@ConfigurationProperties(prefix = “jdbc”),在返回对象时会检查有没有注解标注的属性的set方法.