什么是spring boot
spring boot是一个脚手架,构建于spring框架之上;基于快速构建理念,提供了自动配置功能,可以实现开箱即用特性;构建完一个项目后,可以零配置或少量配置即可运行我们的项目;spring boot具有以下特性:
1.起步依赖
2.自动配置
3.健康检查
spring boot 环境配置
准备工作:
1.下载jdk1.8,配置好环境变量
2.下载最新的Maven
3.到官网下载最新的sts,定义新的workspace(注意所有的目录下不要有中文)
Maven的基本配置
①.带Maven的conf目录下修改settings.xml配置,设置私服,设置成aliyun
aliyun
aliyun for maven
*
https://maven.aliyun.com/repository/public
②设置本地仓库,存放依赖包
${user.home}/.m3/repository
③设置jdk版本为1.8;因为jdk1.8版本是最稳定的;
jdk-1.8
true
1.8
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
STS整合Maven配置
启动STS进行配置
Maven Installation—user settings–workspace(设置text file encoding为utf-8)
spring boot项目启动过程图
springboot 项目在启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描指定包及子包中的类进行加载,然后检测类上是否有spring 框架中指定的注解描述(例如@component,@controller等),如果有,则将类交给spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean实例,假如此Bean指定了生命周期方法,还会调用生命周期的方法.当实例创建后,spring框架还会基于类的作用域描述,将实例存储到不同作用域的容器中.实现Bean对象的科学管理.
@component 是spring中用于描述Bean类的一个注解,用于告诉spring这个类是用spring创建,当此对象由spring创建和管理时,默认会将对象存储到池(Bean 池)中;
@SpringBootTest 注解用于告诉spring框架,此测试类交给spring管理
@AutoWired注解描述属性时,用于告诉spring框架要为此属性注入一个值;
@Scope 是Spring中用于定义Bean对象作用域的一个注解,其常用的值有
singleton(整个内存有一份Bean实例),prototype(每次获取都会创建新实例)等。
@Lazy注解用于描述类,其目的是告诉spring框架此类支持延迟加载。
@PostConstruct 注解用于描述bean对象生命周期方法中的初始化方法,此方法会在对象的构造方法之后执行。
@PreDestroy 注解用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前执行。
Spring框架管理Bean对象有什么优势:
spring 是一个资源整合框架(Framework),通过spring可将很多资源(自己写的对象或第三方提供的对象,例如连接池等)整合在一起,然后进行科学应用,以便更好的对外提供服务
Spring框架可以为由它管理的对象(Bean)提供懒加载策略(对象暂时用不到,则无需加载和实例化),作用域(例如singleton-频繁用时可以考虑内存中只有一份,prototype-使用次数少时可以用时创建,不用时销毁),生命周期方法(更好实现对象的初始化和资源销毁),以实现对象对系统资源的有效使用。同时Spring框架还可以基于用户设计管理对象与对象的依赖关系,以降低对象与对象之间的直接耦合,提高程序的可维护性和可扩展性。