具体来说就是从配置文件中赋值给属性,从而得到对应值,接下来我将介绍几种方法
一、首先是本文要用到的具体文件结构以及对应代码(如果只是想看方法的话可以直接跳过这部分)
主体结构
相应的文件及对应代码
pom.xml需要导入springboot依赖,主要代码如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.3</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<-- 打印日志用-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
</dependencies>
本次需要用到的bean
以及测试用的代码
二、注入的方式
配置好相应的环境后就可以进行属性的配置了
1.@Value注解
具体使用方式为
@Component的加入是为了实例化这个bean
而@Vakue("${name}")是为了在赋值
name是对应的属性值要保持一致
测试结果为
2.@ConfigurationProperties注解
具体使用方式为
@ConfigurationProperties(prefix = "test")以及配置文件的绑定
test是可以随便改写的,不过在引用时属性名要写对
结果为
3.实现EnvironmentAware接口
代买为
package com.caicode.bean;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class TestUser implements EnvironmentAware {
Environment environment;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "TestUser{" +
"name='" + name + '\'' +
'}';
}
//这个方法会在spring容器实例化这个当前bean的时候回调
//会传入一个Environment
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
this.name = environment.getProperty("name");
}
}
结果为
也可以用这种方式
package com.caicode.bean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class TestUser {
@Autowired
Environment environment;
private String name;
public String getName() {
this.name = environment.getProperty("name");
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "TestUser{" +
"name='" + name + '\'' +
'}';
}
}
这样也是可以的
4.@PropertySource注解
具体使用
可以指定其他的文件去给属性赋值,(文件名随便写)
比如本次用到的文件(少了一个s所以并不是一个默认的配置文件)
结果也是有的
以上就是本次介绍的四个方法,本次文章到此结束,感谢大家的观看。