springboot读取环境变量
准备一个.properties文件user.name=张三user.age=18user.addr=上海user.professional=法师准备一个UserInfo类public class UserInfo {private String name;private String age;private String addr;private String professional;}第一种方
·
准备一个.properties文件
user.name=张三
user.age=18
user.addr=上海
user.professional=法师
准备一个UserInfo类
public class UserInfo {
private String name;
private String age;
private String addr;
private String professional;
}
第一种方式:采用下面的注解
@Configuration
@EnableConfigurationProperties(UserInfo.class)
@PropertySource(value = “classpath:userinfo.properties”,encoding = “utf-8”)
@ConfigurationProperties(prefix = “user”)
@Data
@Configuration
@EnableConfigurationProperties(UserInfo.class)
@PropertySource(value = "classpath:userinfo.properties",encoding = "utf-8")
@ConfigurationProperties(prefix = "user")
public class UserInfo {
private String name;
private String age;
private String addr;
private String professional;
}
测试类:
import com.lcj.common.UserInfo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
@SpringBootTest
class ServletAppTests {
@Resource
private UserInfo userInfo;
@Test
void test(){
System.out.println(userInfo.toString());
}
}
第二种方式:和第一种方式差不多,只是将@Configuration和@EnableConfigurationProperties(UserInfo.class)替换为@Component
@Data
@Component
@PropertySource(value = "classpath:userinfo.properties",encoding = "utf-8")
@ConfigurationProperties(prefix = "user")
public class UserInfo {
private String name;
private String age;
private String addr;
private String professional;
}
测试结果:
以上两种方式适合配置实体类这种情况
第三种方式:借助Environment 来进行属性的获取
实体类
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class UserInfo {
private String name;
private String age;
private String addr;
private String professional;
}
配置类
import com.lcj.common.UserInfo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import javax.annotation.Resource;
@Configuration
@PropertySource(value = "classpath:userinfo.properties",encoding = "utf-8")
public class UserConfig {
@Resource
private Environment config;
@Bean
public UserInfo getUserInfo(){
return new UserInfo().setName(config.getProperty("user.name1"))
.setAge(config.getProperty("user.age1"))
.setAddr(config.getProperty("user.addr1"))
.setProfessional(config.getProperty("user.professional1"));
}
}
更多推荐
已为社区贡献5条内容
所有评论(0)