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:/*")
是加载指定的配置文件
@MapperScan
加在启动类上,指定要扫描的Mapper类(Dao层)的包的路径
@Accessors(chain = true)
链式加载 eg:可以这样为属性赋值user.setId(10).setName("AAA");
@GetMapping("/page/{moduleName}")
等同于@RequestMapping(value = "/page/{moduleName}",method = RequestMethod.GET)
@RequestParam
……………………………………………………………………………………………………………………………………………………………
配置文件中
关闭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)基于对象存储数据(例如配置信息,默认值)