springBoot和spring区别?
springBoot是基于spring的。
spring配置繁琐;springBoot自动装配。
spring依赖繁琐;springBoot起步依赖。
spring需要依赖外部服务器;springBoot不要依赖外部服务器,有嵌入式服务器。
准备环境:
setting:设置当前的环境配置(maven、java compile)
othersetting:设置以后新建项目的环境配置(maven、java compile)
还要看一下maven位置是否配置正确
设置为手动选择1.8(也就是8,其他地方没动过就是默认)
springBoot优点(特点):
自动装配(原理:约定大于配置)、起步依赖(原理:maven依赖传递)、非功能性增强
springBoot使用步骤:
导入依赖包
配置父工程为spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent>
注意:springboot工程的打包方式为jar包
配置:配置文件有加载顺序!
配置文件: 如果key名称一致后加载的会覆盖前面内容,以此类更改默认配置
配置文件的类型有:
application.properties
application.yml/application.yaml(同一种文件不同后缀)
配置文件生效规则:properties>yml>yaml
yml语法和数据格式:
yml获取配置文件中数据方式:
@Value,Environment,@ConfigurationProperties(prefix="前缀")
springBoot profile(maven profile):环境切换,不同环境加载不同配置
配置方式:多个properties或用---分隔的yml
spring.profiles.active=环境名称
实际开发中,一个公司会有多套环境(dev、uat|sit、pre、pro<prod>)
测试环境:开发人员、测试人员都会使用;uat专门给测试人员使用,不允许使用热部署;
pre预生产:完全模拟生成环境,相当于代码测试的最后一道防线
pro生产:已经上线的项目所部署的环境
springBoot配置文件加载是有顺序的(内部、外部都是config目录>classpath目录),后面加载的如果有相同的key,会覆盖前面的。
代码
引导类命名为: *Application
引导类上加@SpringBootApplication注解
注意:扫描引导类所在包,及其子包下的所有注解(一个项目的引导类要放在项目的最上层目录)
@Value:
Environment:
@ConfigurationProperties:
注意:必须在引导类(注解为@SpringBootApplication)所在的根目录下:
不在引导类根目录下:
在引导类根目录下: