Spring Boot个人学习笔记#1

1.将spring boot项目打包成可执行的jar 并运行

点击项目右侧的Maven - Lifecyc - package 即可(第一次使用需要联网?安装相应服务)

运行的话用cmd到所在路径使用命令 java -jar jarName 就行。

因为打包好的jar包包含内嵌的tomcat组件,所以当前环境就算不按照tomcat也能运行成功

2.POM解析

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.7.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

spring-boot-starter-parent 包含了项目中所有组件的版本

spring-boot-starter 表示各种依赖,场景启动器。比如我要用到web,就添加spring-boot-starter-web依赖(场景)就可以了,而他的版本受spring-boot-starter-parent控制

3.关于注解

@SpringBootApplication:这是一个主配置类,项目运行该类的main方法来启动

@SpringBootConfiguration:这是一个配置类(SpringBoot项目所用)

@RestController:@ResponseBody + @Controller

@Configuration:这是一个配置类(Spring项目所用)

@Component:这是一个SpringBoot组件(和@Bean相似,告知SpringBoot配置该bean)

@EnableAutoConfiguration:开启自动配置功能

@ConfigurationProperties:(只有在容器的组件@Component中才能使用)将本类中的所有属性和配置文件中的相关配置进行绑定

​ @ConfigurationProperties(prefix = “xxx”):将配置文件中xxx下面的所有属性进行绑定

@Value:配置单个属性

@Validated:JSR303数据校验

@PropertySource(value = {“classpath:指定配置文件”})

@PropertySource(value = {“classpath:指定配置文件”})

@Configuration:指明当前类是一个配置类,就是用来代替之前的Spring配置文件

@Bean:将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名

4.自动配置的SpringBoot项目的resources文件夹

resources.static:存放静态资源:js css images

resources.templates:存放模板页面(SpringBoot默认jar包使用嵌入tomcat,默认不支持jsp页面);可以使用模板引擎(freemarker , thymeleaf)

resources.application.properties:SpringBoot应用的全局配置文件,用来修改一些默认配置;

5.关于application.yml和yml语法以及配置相关

application.yml和application.properties是一样的作用:全局配置文件

yml 以数据为中心,比 xml json等更适合做配置文件

举例:

yml:

server:
  port: 8081

xml:

<server>
	<port>8081</port>
</server>
yml语法:
基本语法:

k:(空格)v:表示一个键值对(空格必须有)

以空格的缩进来控制层级关系;只要左对齐的一列数据,都是同一个层级的

关于 - :last-name 和 lastName等价

属性和值大小写敏感!

值的写法:

字面量:普通的值:数字,字符串,布尔

k: v:直接来写

字符串不用加上单/双引号

“”:双引号:会转义特殊字符:比如 \n就会换行

‘’:单引号:不会转义特殊字符:比如 \n 仍然以 \n打出

对象,Map(键值对):

对象还是 k: v 方式,在下一行写对象的属性和值的关系

friends:
	name: 111
	age: 22

行内写法:

friends: {name: 111,age: 22}

数组(List,Set):

用 - (-后面有空格)值表示数组中的一个元素

pets:
 - cat
 - dog
 - pig

行内写法:(:后面有空格)

pets: [cat,dog,pig]
关于配置的一些其他东西:

@ConfigurationProperties:(只有在容器的组件@Component中才能使用)将本类中的所有属性和配置文件中的相关配置进行绑定

@ConfigurationProperties(prefix = “xxx”):将配置文件中xxx下面的所有属性进行绑定

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

导入配置文件处理器,配置文件进行绑定就会有提示

@Value 和 @ConfigurationProperties 获取值比较

@ConfigurationProperties@Value
功能批量注入属性一个个指定
松散绑定last-name == lastName(支持)last-name != lastName(不支持)
SpEL不支持支持
JSR303数据校验(@Validated)支持不支持
复杂类型封装支持不支持
使用情景:

@Value:只是在业务逻辑中需要获取一下配置文件中的某项值,可以使用该注解

@ConfigurationProperties:如果我们专门写了一个javaBean来和配置文件进行映射,可以使用该注解

指定配置文件注解 @PropertySource 和 @ImportResource

@PropertySource(value = {“classpath:指定配置文件”}):SpringBoot默认从默认配置文件中寻找配置,如果我们想把许多繁琐的配置分成多个单独的配置文件,可以用此注解指定对应的自定义配置文件

@Component
@ConfigurationProperties(prefix = "person")
@PropertySource(value = {"classpath:person.properties"})
public class Person {

@ImportResource(locations = {“classpath:指定配置文件”}):导入Spring的配置文件,让配置文件里面的内容生效;Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件也不能自动识别,想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

@ImportResource(locations = "classpath:beans.xml")
@SpringBootApplication
public class HelloworldApplication {

	public static void main(String[] args) {
		SpringApplication.run(HelloworldApplication.class, args);
	}
}
SpringBoot推荐给容器中添加组件的方式:推荐使用全注解的方式

@Configuration:指明当前类是一个配置类,就是用来代替之前的Spring配置文件

@Bean:将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名

配置文件占位符
1.随机数
${random.int}  ${random.uuid} .....
2.占位符取之前配置的值,如果没有配置,可以用 : 来指定默认值
person.name = ${person.hello:hello}

6.Profile

1.多Profile文件

我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml

默认使用 application.properties 的配置

2.yml支持多文档块方式

用 — 分割文档块

用 spring.profiles.active 激活

server:
  port: 8081
spring:
  profiles:
    active: dev

---

server:
  port: 8085
spring:
  profiles: dev

---

server:
  port: 8083
spring:
  profiles: prod

---

server:
  port: 8084
spring:
  profiles: test
3.激活指定Profile

1.在配置文件中指定 spring.profile.active=dev

2.命令行: --spring.profiles.active=dev

3.虚拟机参数:-Dspring.profiles.active=dev

7.配置文件加载位置

Spring Boot启动会扫描以下位置的application.properties/yml文件作为Spring Boot的默认配置文件:

  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/

以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置覆盖低优先级配置内容(覆盖属性,而不是覆盖文件,也就是说是“互补”)

我们也可以通过配置spring.config.location来改变默认配置

Spring Boot外部配置加载顺序

https://blog.csdn.net/nangeali/article/details/82262283

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值