4.springBoot(属性注入)获取配置的几种方式
将配置文件里的配置注入到java代码中,这里主要介绍2种属性注入的方式:
方式2:@ConfigurationProperties + @EnableConfigurationProperties注解实现。
1.引入依赖
<!-- 核心启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
1.
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot jdbc.username=root jdbc.password=123456
2) 新建一个类,用来进行属性绑定并注入:
@Component @ConfigurationProperties(prefix = "jdbc") public class JdbcProperties { private String url; private String driverClassName; private String username; private String password; // get和 set }
@RestController public class UserController { @Autowired JdbcProperties jdbcProperties; //方法,引用入口 xx(){ System.out.println(jdbcProperties); } }
2.@ConfigurationProperties + @EnableConfigurationProperties注解实现
1)导入数据源maven坐标
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.6</version> </dependency>
2)新建一个类,用来进行属性注入:
@ConfigurationProperties(prefix = "jdbc") public class DataSourceProperties { private String url; private String driverClassName; private String username; private String password; // get set }
2)在DataSourceConfig中使用这个DataSourceProperties属性读取类对象:
@Configuration @EnableConfigurationProperties(DataSourceProperties.class) public class DataSourceConfig { /** * 通过bean注解实例化DataSource对象 * @param properties * @return */ @Bean public DataSource dataSource(DataSourceProperties properties) { DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setUsername(properties.getUserName()); druidDataSource.setDriverClassName(properties.getDriverClassName()); druidDataSource.setUrl(properties.getUrl()); druidDataSource.setPassword(properties.getPassword()); return druidDataSource; } }