Spring boot
是一个脚手架,构建于Spring框架(Framework)根底之上,基于疾速构建理念,提供了主动配置性能,可实现其开箱即用个性(创立完一个根本的我的项目当前,可零配置或者大量配置即可运行咱们的我的项目),其外围次要有如下几个方面:
▪ 起步依赖(Starter Dependency)-我的项目创立时底层帮你关联依赖。
▪ 主动配置(Auto Configuration)。
▪ 健康检查(Actator)-监控。
…………………………………………………………………………………………………………………………………………………………
@SpringBootApplication
此注解形容此类是启动类
@Component
注解的作用就是标记,示意将此类标记为Spring容器中的一个Bean。是Spring中用于形容Bean类的一个注解。用于通知Spring这个类的实例由Spring创立,当此对象由Spring创立和治理时,默认会将对象存储到池(Bean池)中。
@Service
是一个非凡的@Component 是一个业务层对象,后续会在此对象中执行 外围业务、扩大业务
@Mapper
该注解是用于数据层 用于通知Spring框架此接口的实现由mybatis创立,并将其实现类对象存储到spring容器
@SpringBootTest//此注解形容此类是SpringBoot工程中的单元测试类 示意这个测试类交给spring去治理
@Autowired
此注解通知spring框架运行时为此属性注入一个值 能够:形容属性 set办法(通常配合无参构造方法应用) 构造方法(能够省略)
@Qualifier("cd")
通知spring为咱们注入的是容器中的cd这个bean对象 要和@Autowired一起配合应用 前提是bean池中有多个bean 能够:形容属性 set办法 切记不能够写在构造方法下面 须要写在构造方法的参数里
@Lazy
此注解的作用是提早加载,通知spring框架,用的时候再创立实例
@Scope("prototype")
每次从spring容器中去对象时,都会创立多实例
@Scope("singleton")
该注解默认就是单例作用(这个类的实例在一个spring容器中默认只有一份)
@PostConstruct
该注解形容的办法会在对象构建当前执行,用于执行一些初始化操作
@PreDestroy
该注解形容的是在单例队象销毁之前会执行此办法,spring容器在销毁之前会先将容器(Bean池)中的对象进行移除,在移除对象时,如果对象中定义了生命周期销毁办法,此时还会调用生命周期销毁办法
@Controller
用于标记在一个类上,应用它标记的类就是一个SpringMVC Controller 对象。散发处理器将会扫描应用了该注解的类的办法。艰深来说,被Controller标记的类就是一个控制器,这个类中的办法,就是相应的动作。
@ControllerAdvice
标记该类是全局异样解决类
@ExceptionHandler(RuntimeException.class)
标记该办法是一个异样解决办法
@RequestMapping
是一个用来解决申请地址映射的注解,可用于类或办法上。用于类上,示意类中的所有响应申请的办法都是以该地址作为父门路。
@PropertySource("classpath:/*")
是加载指定的配置文件
@Accessors(chain = true)
链式加载 eg:能够这样为属性赋值user.setId(10).setName("AAA");
@GetMapping("/page/{moduleName}")
等同于@RequestMapping(value = "/page/{moduleName}",method = RequestMethod.GET)
……………………………………………………………………………………………………………………………………………………………
配置文件中
敞开Banner显示:
spring.main.banner-mode=off
JVM参数-最小堆:
-Xms5m 最大堆:-Xmx5m
跟踪运行配置:
Arguments参数 VM arguments 参数: -XX:+TraceClassLoading
任何一个我的项目都有一个启动入口,在springboot中的启动类须要@SpringBootApplication注解进行形容,并且在类中定义一个main办法,main办法在运行时会读取配置文件,并加载指定资源,而后进行初始化操作
同时须要留神的是类(测试类)要写在启动类(启动测试类)所在的包或子包下
1)SpringBoot我的项目中配置文件起源?
a)SpringBoot 官网定义(个别为一些根底配置)例如spring.factories
b)第三方定义(日志零碎-log4j、xml……)
c)咱们本人定义
2)SpringBoot我的项目中的资源加载?(资源能够了解为咱们的class类)-把资源从磁盘读取到内存
a)JDK类文件
b)Spring类文件
c)本人定义的类文件
3)Spring中的我的项目资源初始化?
a)构建实例对象
b)基于对象存储数据(例如配置信息,默认值)