在springboot工程下,属性注入有两种方法:
一、我们通过配置项目自带的配置文件properties,通过spring自带注解:@Component,将类实例化到spring容器中,相当于<bean id=”XXX” class=””/>。
二、也可以自定义properties文件,通过spring的@PropertieSource注解将配置文件加载进来。
实现如下:
- 方法一:
package hhy.javaboy.springbootdemo1;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
//吧user类实例化到spring容器中
@Component
public class User {
@Value("${username}")
private String username;
@Value("${sex}")
private String sex;
@Value("${job}")
private String job;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", sex='" + sex + '\'' +
", job='" + job + '\'' +
'}';
}
}
springboot自带的配置文件
#配置user
username=王二麻
sex=男
job=山贼
这样就可以把属性值注入了。
- 方法二:
我们自定义properties,新建一个user.peoperties文件,还是和上面配置文件的值一样。但是和上面的方法一不同,我们需要在类上面加入spring的一个注解@PropertieSource,代码如下:
/吧user类实例化到spring容器中
@Component
@PropertySource("classpath:user.properties")
public class User {
@Value("${username}")
private String username;
@Value("${sex}")
private String sex;
@Value("${job}")
private String job;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", sex='" + sex + '\'' +
", job='" + job + '\'' +
'}';
}
}
这两种就是springboot里面常用的属性注入了。
- 类型属性安全注入
我们可以使用springboot自带的注解:@ConfigurationProperties来实现注入,注解的prefix表示的是配置文件的前缀,配置文件和java代码如下:
配置文件:
#配置user
user.username=王二麻
user.sex=男
user.job=山贼
java代码 :
@Component
@PropertySource("classpath:user.properties")
@ConfigurationProperties(prefix = "user")
public class User {
private String username;
private String sex;
private String job;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", sex='" + sex + '\'' +
", job='" + job + '\'' +
'}';
}
}
注:本文参考大佬springboot教程,详细可以查看:http://www.javaboy.org/