Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件
学习视频:【编程不良人】2021年SpringBoot最新最全教程3.5 @SpringBootApplication详解
这是一个组合注解,就是由多个注解组成。下列注解红框内称为元注解(jdk提供)
@Target:指定注解作用范围@Retention:指定注解什么时候生效
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232457035-207268452.png
[*]重要注解
@SpringBootConfiguration:自动配置Spring、SpringMVC相关环境
@EnableAutoConfiguration:开启自动配置自动配置的核心注解自动与项目中引入第三方技术自动配置其环境mybatis、redis、es、rabbitmq等第三方技术
@ComponentScan:组件/注解扫描保证扫描范围下的注解生效,扫描范围:当前包及其子包
[*]SpringBoot内嵌的服务器传递参数进行测试
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232513698-2123378692.png
3.6 配置文件拆分以及加载外部配置文件
[*]区分测试环境和生产环境
测试环境的配置文件一般命名为:application-dev.yml
生产环境的配置文件一般命名为:application-prod.yml
[*]在公共配置环境里去决定激活哪个环境
**application.yml**
# 修改内嵌服务器端口号
server:
port: 8081
spring:
profiles:
active: **dev**#**指定dev环境的配置文件生效**
[*]加载外部配置文件
在设置中,下图的Program arguments填入下列格式 :
- -spring.config.location=D:\Desktop\application-local-prod.yml
等于号右边填绝对路径,即可完成加载。
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232525098-1773793542.png
3.7 创建SpringBoot的第二种创建方式
[*]通过module创建
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232544983-1603189263.png
选择需要的依赖
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232552893-1050798648.png
创建好了,.mvc、mvnw、mvnw.cmd 是在linux中运行的。
.gitignore是git设置忽略文件的。HELP.md是介绍的文档。
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232601220-1884482805.png
pom.xml
.......
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
第四章、工厂创建对象
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232609677-1819247750.png
4.1 获取基本类型、对象
application.yml
# 声明基本属性注入
name: 小陈
age: 23
price: 23.2
maps: "{'asd':'小红','qwe':'大米'}" # 注意:@Value注入 格式要用 #{${"maps"}}
birthday: 2012/1/3 15:13:56 # 默认日期格式要写成: yyyy/mm/ddHH:MM:ss
lists: jack,xiaoming,mike,abcd
# 声明对象方式注入
orders:
age: 21
name: "小红"@ConfigurationProperties(value = "orders")
@Component
public class User {
private String name;
private Integer age;
get....
set....
}@Value("${name}")
private String name;
@Value("${birthday}")
private Date birthday;
@Value("${lists}")
private List<String> lists;
@Value("#{${maps}}")
private Map<String,String> maps;
@RequestMapping("hello1")
public String hello1() {
System.out.println("name = " + name);
System.out.println("birthday = " + birthday);
for (String list : lists) {
System.out.println("list = " + list);
}
System.out.println("maps = " + maps);
return "hello1";
}
@Autowired
private User user;
@RequestMapping("hello3")
public String hello3() {
System.out.println("name = " + user.getName());
System.out.println("age = " + user.getAge());
return "hello3";
}通过这种获取对象的方式,要注意:一定要有set方法。
@ConfigurationProperties(value/prefix = "orders")的参数,value和prefix是一样的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>引入这个依赖后,我们在配置文件中输入被@ConfigurationProperties修饰的对象名后,就会有对其成员变量名的提示
https://img2023.cnblogs.com/blog/3321544/202312/3321544-20231208232623324-460921019.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]