SpringBoot介绍-约定大于配置
SpringBoot是在Spring4.0基础上开发的,不是替代Spring的解决方案,而是和Spring框架结合并进一步简化Spring搭建和开发过程的。
如何简化?就是通过提供默认配置等方式让我们更容易,集成了大量常用的第三方库配置,所有你想用的常用框架,它都有对应的组件支持
大量的SpringBoot应用只需要非常少量的配置代码
另外SpringBoot通过继承大量的框架使得不同依赖包的版本冲突问题得到解决
内嵌了web层的tomcat,数据访问的SpringData,还有各种中间件,只需要引入进来就可以。
只有在pom依赖中加上spring-boot-starter的依赖,才是作为一个springboot的项目
开发web所依赖的所有jar包都加进来了
里面有转json的工具、tomcat、web服务的组件
1.加注释
@SpringBootApplication
2.在main方法中加上
SpringApplication.run(Application.class,args);
如何把SpringBoot项目部署到服务器上
通过maven把项目打包成jar包,然后把jar包托到某个文件夹下,通过命令行的方式去启动
java -jar 打包后jar包的名字
会发现报错,因为启动这个jar包后,这个jar会找不到启动类的入口
需要在pom文件中导入
spring-boot-maven-plugin
启动类的位置:如果不加@ComponentScan(扫描路径),最好放在需要的扫描包的根目录下,这样才能自动扫描所有的Bean放到spring容器中
springboot项目约定:约定大于配置
前面说SpringBoot通过继承大量的框架使得不同依赖包的版本冲突问题得到解决
在创建springBoot项目时,会让我们选择springboot的版本号(例如springboot 2.4.2)
我们可以在pom文件中加上父依赖
spring-boot-starter-parent
而spring-boot-starter-parent的父maven项目是
spring-boot-dependencies
而spring-boot-dependencies中引入了大量 前面已选择的springboot 的版本号 对应的 其他依赖的版本号的配置,这样我们在自己的springBoot项目 就不用加上版本号 ,避免版本冲突的问题
不同
starter场景启动器:不同场景的场景启动器维护了所对应的所有依赖,从而简化maven文件的书写
spring-boot-maven-plugin,它是作为bulid来加入插件的,不是dependency依赖
springboot只有加了这个插件,当运行Java -jar xxx.jar包时,才能找到启动类的入口,项目才能正常部署
描述一下springboot的作用?
springboot有哪些特性?
创建springboot项目的两种方式
(1)创建maven项目,然后在pom文件中加入springboot-starter依赖
(2)直接创建选择springInitializer创建springboot项目
SpringBoot的启动类
SpringApplication除了调用静态run方法来启动springboot项目,还可以创建实例对象,来使用SpringApplication的其他方法。
要使用SpringApplication的其他方法,需要自定义一个SpringApplication,然后使用它的其他方法
配置文件的使用
配置文件的优先级:上面的最高
上图的最后一行命令是通过外部文件的配置文件来指定配置内容
config内的配置文件的优先级 >> 和config同级的配置文件的优先级
父级的配置文件的优先级 >> 子配置文件
命令行 + 配置参数 的优先级 >> 配置文件
配置属性:先按位置找,同位置有多个配置文件,再按优先级顺序高的采用
spring.profiles.active 指定环境 dev环境 ,没有的属性,会按照指定的 环境,从优先级低的配置文件中读取。(下面文件的命名格式是约定)
对于不同环境的,通过spring.profiles.active 指定环境,也可以指定让哪个类生效,通过给类上加注解@Profile("dev")
配置文件配置属性:先看配置文件的位置 ,再看spring.profiles.active指定环境,再看优先级yml、yaml、properties
上面这种通过读取的配置文件,它的优先级很低
属性注入
1.通过@value+美元符,可以给单个成员变量注入参数值
如果类中的成员属性过多,上述方式麻烦。可以采用方法2
2.给对象中的所有成员(变量)属性注入参数值,可以通过@ConfigurationProperties+前缀prefix的方式给有的成员属性赋值
配置文件中的参数命名很松散,多种方式都可以和成员变量 一一绑定
配置文件中的属性占位符,可以实现对其他属性的引用
配置文件中的属性值可以赋随机值,包含以下几种形式的随机值
如果不想把类的成员变量的赋值和yml文件写在一起,可以通过@PropertySource() 指定外部配置来源的方式 来赋值