公共字符串你好(){
System.out.println(user); //管理单个对象。
//管理多个对象。默认是单例。你需要建立一个原型
System.out.println(calendar1.getTime()); //对象创建成功。
System.out.println(calendar1==Calendar2); //默认是单例,因此需要设置原型以使其成为多例。
返回“你好,Spring Boot!”
}
财产注入
========================================================================
SpringBoot使用全局配置文件,配置文件名是固定的。
应用属性
应用程序.yml
配置文件的作用:更改SpringBoot自动配置的默认值。 SpringBoot会自动为您进行最低级别的配置。
Springboot提供了两种注入方式:基本属性注入和对象注入。
基本属性注入@Value
基本属性包括int、String、Date、String[]、List、Map等。
基本属性注入:使用注解@Value(\’${xxx}\’)。
@RestController
@RequestMapping(“你好”)
公共类HelloController {
@Value(“${服务器.端口}”)
私人国际端口。
@Value(“${str}”)
私有字符串str;
@Value(“${bir}”)
私人日期栏;
@Value(“${strs}”)
私有字符串[] strs;
@Value(“${列表}”)
私人名单名单;
@Value(“#{${maps}}”) //Map注入值有点特殊
私有MapString,字符串映射。
@GetMapping(“你好”)
公共字符串你好(){
//端口=8989
System.out.println(\’端口=\’ + 端口);
//str=詹宇
System.out.println(\’str=\’ + str);
//时间=2012 年12 月12 日星期三12:12:12 CST
System.out.println(\’时间=\’ + bir);
//啊
//bb
//抄送
for (字符串str : strs) {
System.out.println(str);
}
//张三
//仙人
//王武
list.forEach( v – System.out.println(v));
//k=aa, v=小艺
//k=bb, v=小二
//k=cc, v=小三
地图.forEach((k, v) – {
System.out.println(\’k=\’ + k + \’, v=\’ + v);
});
返回“你好,Spring Boot!”
}
}
配置application.properties:
服务器端口=8989
属性注入
str=詹宇
账单=2012/12/12 12:12:12
strs=aa、bb、cc
名单=zhangsan、lisi、wangwu
地图={\’aa\’:\’小一\’, \’bb\’:\’小二\’, \’cc\’:\’小三\’}
对象模式注入@ConfigurationProperties
基于对象的注入使用注解:@ConfigurationProperties(prefix=\’prefix\’)
@ConfigurationProperties告诉SpringBoot该类的所有属性都绑定到配置文件。
@Component 是必需的,因为如果该组件是容器内的组件,则容器只能提供@ConfigurationProperties 功能
@ToString
@Data //必填
@Component //也可以使用@Configuration
@ConfigurationProperties(prefix=“user”) //必需
公共类用户{
私有字符串ID;
私有字符串名称。
私人整数年龄。
私人日期栏;
}
在控制器中使用:@Autowired完成自动插入。
@RestController
@RequestMapping(“你好”)
公共类HelloController {
@Autowired
私人用户用户;
@GetMapping(“你好”)
公共字符串你好(){
System.out.println(用户);
//用户(id=1721,name=yusael,age=20,bir=12 月12 日星期三12:12:12 CST 2012)
返回“你好,Spring Boot!”
}
}
配置application.properties:
自定义对象属性注入
用户ID=1721
用户名=Jenyu
用户年龄=20
用户.bir=2012/12/12 12:12:12
注意:可以通过引入依赖项—— Profile Processor 来构建自定义注入元数据。
这意味着引入这个依赖后,在将注入对象写入配置文件时会出现提示。如果不安装,则不会有任何效果。
org.springframework.boot
Spring Boot配置处理器
真相
两种注射方式比较
| @配置属性|
| — | — |
| 特点| 配置文件中一一指定属性
| 不支持松散绑定(松散语法)。
| 不支持|
| 支持JSR303 数据验证
| 复杂类型封装支持| 不支持
当您只需要为特定业务逻辑检索配置文件中的特定值时,请使用@Value。
如果你想专门创建一个映射到配置文件的JavaBean,可以直接使用@ConfigurationProperties。
注射细节
配置文件注入值数据校验 @Validated
@成分
@ConfigurationProperties(前缀=“人”)
@Validated //配置文件注入值数据验证
公开课人{
/**
property name=\’lastName\’ value=\’Literal/${key}从环境变量和配置文件中获取值/#{SpEL}\’/property
*/
//姓氏必须是电子邮件格式
@电子邮件
//@Value(“${person.last-name}”)
私人字符串姓氏;
//@Value(“#{11*2}”)
私人整数年龄。
//@值(“真”)
私人布尔老板。
私人出生日期;
私有MapString,对象映射;
私人名单名单。
私家狗。
加载指定的配置文件 @PropertySource
@PropertySource加载指定的配置文件。
//加载指定的配置文件
@PropertySource(值={\”classpath:person.properties\”})
@成分
@ConfigurationProperties(前缀=“人”)
公开课人{
私人字符串姓氏;
私人整数年龄。
私人布尔老板。
}
导入 Spring 的配置文件 @ImportResource
@ImportResource:导入Spring配置文件并启用配置文件的内容。
Spring Boot没有Spring配置文件,也不会自动识别您创建的配置文件。
写在最后
这次采访我们收集了很多面试题!
以下是面试问题截图。
{“classpath:person.properties”})
@成分
@ConfigurationProperties(前缀=“人”)
公开课人{
私有字符串姓氏;
私人整数年龄。
私人布尔老板。
}
导入 Spring 的配置文件 @ImportResource
@ImportResource:导入Spring配置文件并启用配置文件的内容。
Spring Boot没有Spring配置文件,也不会自动识别您创建的配置文件。
写在最后
这次采访我们收集了很多面试题!
以下是面试问题截图。
[外部链接图像正在传输.(img-q9s0FhJw-1720023395964)]
#【SpringBoot】以上组件管理+属性注入相关内容来源网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92819.html