在说Springboot的属性注入之前提一下Spring的注入方式
Spring的属性注入
Spring采用了@Value
的注解实现了属性的注入,即将properties文件中的key=value键值对或xml文件中的外部属性通过如下方式注入:
public class Bean{
@Value("${username}") //properties文件或外部属性的key值放入${}中即可注入
private String userName;
......
}
SpringBoot的属性注入
SpringBoot提供了@ConfigurationProperties
的注解。
以.yml文件为例
将yml文件中的数据源注入到指定dataSource中:
yml文件
server:
port: 8090
servlet.context-path: /frameworkdemo
spring:
datasource:
username: root
password: root
url: jdbc:mysql://127.0.0.1:3306/ump?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
属性注入方式
package com.sse.frameworkdemo.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
/**
* JDBC java配置类
*/
@Configuration
public class JdbcConfiguration {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
DataSource dataSource = new DruidDataSource();
return dataSource;
}
}
它的注入原理是通过set方法注入。