springboot属性注入的四种方式
)
java配置
java配置主要靠java类和一些注解来达到和xml配置一样的效果,比较常用的注解有:
@Configuration
: 声明一个类作为配置类,代替xml文件@Bean
:生命在方法上,将方法的返回值加入Bean容器,代替xml文件@Value
:属性注入@PropertySource
: 指定外部属性文件
概述
spring3.0以后 注解已经非常完善了,因此spring推荐大家使用java配置代替以前的xml,下面举例讲述如何使用java配置 去获取配置文件中的值,下面以读取jdbc的配置为例。
一、@Autowired注入
1).第一种,加入数据库依赖
代码如下(示例):
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
2.数据库配置
代码如下(示例):
jdbc.url=jdbc:mysql://localhost:3306/user_demo
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=root
3.读取数据库配置 的值
代码如下(示例):
@Configuration
@PropertySource("classpath:jdbc.properties")//读取资源文件
public class JdbcConfiguration {
// 获取配置文件中的值
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.driverClassName}")
private String driverClassName;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean //把方法的返回值 注入到spring容器
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(this.driverClassName);
druidDataSource.setUrl(this.url);
druidDataSource.setUsername(this.username);
druidDataSource.setPassword(this.password)