1.Spring Boot简介
简化Spring应用开发的一个框架
整个Spring技术栈的整合
J2EE开发的一站式解决方案
2.微服务
微服务:架构风格
一个应用应该是一组小型服务;可以通过HTTP方式进行互通
每一个功能元素最终都是一个可独立替换和独立升级的软件单元
3.配置文件
作用:修改SpringBoot自动配置的默认值
application.properties
application.yml
(1)yaml基本语法
k: v:表示一对键值对(空格必须有)
以空格的缩进来控制层级关系
属性和值大小写敏感
(2)值得写法
字面量:普通的值(数字,字符串,布尔)
k: v:字面直接来写
字符串默认不用加上单引号或者双引号
"":双引号不会转义字符串里面的特殊字符,特殊字符会作为本身想表示的意思
'':单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据
对象、Map(属性和值)(键值对)
k: v:在下一行来写对象的属性和值的关系
对象还是k: v的方式
friends:
lastName:zhangsan
age:20
行内写法:
friends: {lastName: zhangsan,age: 18}
数组(List、Set)
用- 值表示数组中的一个元素
pets:
- cat
- dog
- pig
行内写法
pets: [cat,dog,pig]
(3)配置文件值注入
配置文件:application.yml
server:
port: 8081
person:
lastName: zhangsan
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v1,k2: 12}
lists: [lisi,zhaoliu]
dog: {name: 小狗,age: 12}
配置文件:application.properties
person.last-name=张三
person.age=18
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=dog
person.dog.age=15
javaBean:
/** * 将配置文件中每一个属性的值,映射到这个组件中 * @ConfigurationProperties:告诉SpringBoot将本类中所有属性和配置文件中相关的配置进行绑定 * prefix = "person":配置文件中哪个下面的所有属性进行一一映射 * 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
* @ConfigurationProperties(prefix = "person")默认从全局配置文件中获取值 */ @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog;
导入配置文件处理器
<!--导入配置文件处理器,配置文件进行绑定会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
@ConfigurationProperties获取配置文件值
@Component
@ConfigurationProperties(prefix = "person")
@Value获取文件值
public class Person { @Value("${person.last-name}") private String lastName; @Value("#{11*2}") private Integer age; @Value("true") private Boolean boss; private Date birth;
(4)@PropertySource&@ImportResource
@PropertySource:加载指定的配置文件
@PropertySource(value = {"classpath:***.properties"}) @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth;
@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别
@ImportResource({"classpath:***.xml"})
(5)Spring推荐使用@Bean给容器添加组件
/** * @Configuration:指明当前类是一个配置类,用来替代Spring配置文件 */ @Configuration public class MyAppConfig { //将方法的返回值添加到容器中:容器中这个组件默认的id就是方法名 @Bean public HelloService helloService(){ return new HelloService(); } }