1. @Value获得自定义属性
- 修改application.properties文件内容: 添加自定属性
# 设置内部端口号
server.port=8080
# 配置上下文根
server.servlet.context-path=/
# 自定义属性
school.name=faith
websitr=www.baidu.com
- 在src/main/java下创建IndexController类, 使用
@Value
获得自定义属性信息
@Controller
public class IndexCotroller {
@Value("${school.name}")
private String schoolName;
@Value("${website}")
private String website;
@RequestMapping("/say")
public @ResponseBody String say() {
return "Hello:" + schoolName + ", website" + website;
}
}
- 启动项目, 运行结果
2. @ConfigurationProperties获得前缀相同的属性
把前缀相同的属性映射为一个类
- 修改application.properties文件内容: 添加自定属性
# 设置内部端口号
server.port=8080
# 配置上下文根
server.servlet.context-path=/
# 自定义属性
person.name=faith
person.address=NJ
- 创建Person类
@Component //交个给spring容器管理
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private String address;
// getter和setter方法省略
}
- 在src/main/java下创建IndexController类, 获得自定义属性信息
@Controller
public class IndexCotroller {
@Autowired
private Person person;
@RequestMapping("/person")
public @ResponseBody String person() {
return "person.name:" + person.getName() + ", person.address:" + person.getAddress();
}
}
- 运行结果
在Person类会出现提示
- 这并不影响运行结果
- 也可以解决, pom文件引入下面依赖
<!--解决使用@ConfigurationProperties 注解出现警告问题-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>