typora-copy-images-to: upload
微服务架构
第一个Spring Boot程序
- jdk 1.8
- maven 3.6.1
- springboot 最新版
- IDEA
修改端口号、banner
banner在线制作网站
Spring Boot banner在线生成工具,制作下载banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.net
原理
自动配置
pom.xml
- spring-boot-dependencies:核心依赖在父工程中!
- 我们在写或者引入SpringBoot依赖的时候不需要指定版本,因为有版本仓库
启动器
-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
-
启动器:Springboot的启动场景;
-
spring-boot-starter-web,就会自动导入web环境的所有依赖
-
springboot会将所有的功能场景变成一个个启动器
-
我们要使用什么功能,只需要一个个启动器
主程序
@SpringBootApplication
public class Springboot01HelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot01HelloworldApplication.class, args);
}
}
-
注解
- springboot所有的自动配置都是在启动的时候扫描并加载:spring.factories 所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器,有了启动器,自动装配就会生效,然后配置成功!
-
- springboot在启动的时候,从类路径下 /META-INF/spring.factories获取指定的值;
- 将这些自动配置的类导入容器,自动配置就会生效,帮我们进行自动配置
- 以前需要自动配置的东西,现在springboot帮我们做
- 整合javaEE,解决方案和自动配置的东西都在spring-boot-autoconfigure:2.5.3这个包下
- 它会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器
- 容器中也会存在很多的 xxxAutoConfiguration的文件,这些类给容器中导入了这个场景需要的所有组件,并自动配置,@Configuration,JavaConfig!
- 有了自动配置类,免去了我们手动编写配置注入功能组件的工作
-
run方法
自动装配原理精髓
- SpringBoot启动会加载大量的自动配置类
- 我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中;
- 我们再来看这个自动配置类中到底配置了哪些组件; (只要我们要用的组件存在在其中,我们就不需要再手动配置了)
- 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。 我们只需要在配置文件中指定这些属性的值即可;
xXxxAutoConfigurartion: 自动配置类;给容器中添加组件
xxxxProperties: 封装配置文件中相关属性;
SpringBoot配置
删除原来的properties文件,换成application.yaml
SpringBoot使用一个全局的配置文件,配置文件名称是固定的
-
application.properties
-
application.yml
-
语法结构: key : 空格 value
-
-
name: chenhao
student:
name: chenhao
age: 3
student1: {name: chenhao, age: 3}
pets:
- cat
- pig
- dog
pets1: [cat, pig, dog]
-
yaml 可以给实体类赋值
配置文件的作用∶修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;
spring传统的内部赋值 原生方式
通过yaml赋值
如何解决?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
yaml的高级玩法 占位符表达式
学会举一反三将配置文件绑定到 java类上,比如连接数据库的 url 等
传统的 properties文件赋值
yaml 的优点
- cp只需要写一次即可, value则需要每个字段都添加
- 松散绑定:这个什么意思呢?比如我的yml中写的last-name,这个和lastName是一样的, -后面跟着的字母默认是大写的。这就是松散绑定
- JSR303数据校验,这个就是我们可以在字段是增加一层过滤器验证,可以保证数据的合法性
- 复杂类型封装,yml中可以封装对象,使用@value就不支持
yaml 的相关配置
yaml多套环境配置
也可以把三个文件集合到一个文件内
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)