SpringBoot属性注入的两种方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SpringBoot属性注⼊的两种⽅法
1、实现⽅式⼀:Spring中的@PropertySource
@Component
@PropertySource("classpath:user.properties")
public class UserInfo {
@Value("${ername}")
private String username;
@Value("${user.password}")
private String password;
@Value("${user.age}")
private Integer age;
@Override
public String toString() {
return "UserInfo{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
'}';
}
}
配置⽂件中:
ername='admin'
user.password='123'
user.age=88
测试:
@SpringBootTest
public class UserInfoTest {
@Autowired
UserInfo userInfo;
@Test
public void user(){
System.out.println(userInfo.toString());
}
}
结果:
UserInfo{username=''admin'', password=''123'', age=88}
注意:此⽅法是不安全的,如果在配置⽂件中找不到对应的属性,例如没有username属性,会报错如下:
ng.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userInfo': Injection of autowired dependencies failed; nested exception is ng.IllegalArgumentException: Could not resolve placeholder 'ername' i 2、实现⽅式⼆:通过SpringBoot特有的@ConfigurationProperties来实现
注意点:需要getter、setter函数
@Component
@PropertySource("classpath:user.properties")
@ConfigurationProperties(prefix = "user")
public class UserInfo {
// @Value("${ername}")
private String username;
// @Value("${user.password}")
private String password;
// @Value("${user.age}")
private Integer age;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public void setUsername(String username) {
ername = username;
}
@Override
public String toString() {
return "UserInfo{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
'}';
}
}
这种⽅法⽐较安全,即使配置⽂件中没有对于属性,也不会抛出异常。

以上就是SpringBoot属性注⼊的两种⽅法的详细内容,更多关于SpringBoot属性注⼊的资料请关注其它相关⽂章!。

相关文档
最新文档