SpringBoot基础入门

发布一下 0 0

#头条创作挑战赛#

一、SpringBoot入门

1. SpringBoot简介

Spring Boot称为搭建程序的脚手架,其主要作用是快速构建庞大的Spring项目,尽可能减少一切xml配置,做到开箱即用(提供默认配置,存放默认配置的包就是启动器starter),迅速上手

2. SpringBoot特点

  • 为所有 Spring 的开发者提供一个非常快速的、广泛接受的入门体验
  • 开箱即用(启动器starter-其实就是SpringBoot提供的一个jar包),但通过自己设置参数(.properties),即可快速摆脱这种方式
  • 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
  • 绝对没有代码生成,也无需XML配置

二、常用注解

  • @SpringBootApplication
启动类
  • @RestController
定义表现层
  • @Configuration
声明一个类作为配置类,代替xml文件
  • @Bean
声明方法上,将方法的返回值加入Bean容器
  • @Value
属性注入
  • @PropertySource
指定外部属性文件
  • @Configuration
声明当前类为属性读取类
  • @Component
定义该类加入Spring的bean容器
  • @EnableConfigurationProperties
引入配置类
  • @Transactional
配置事务
  • @MapperScan
扫描包注解
  • @ConfigurationProperties(prefix = "**")
声明当前类为属性读取类,读取属性文件中前缀为**的值

三、自动装配原理

@SpringBootApplication注解

@SpringBootConfiguration

  1. 在这个注解上有一个@Configuration注解,声明当前类是一个配置类,
  2. 然后Spring会自动扫描添加了@Configuration的类,并且读取其中的配置信息。
  3. @SpringBootConfiguration是来声明当前类是SpringBoot应用的配置类,项目中只能有一个,无需自己添加。

@EnableAutoConfiguration

  1. 基于所添加的依赖配置Spring,SpringBoot内部对大量的第三方库或Spring内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应库所需的依赖,如果有那么默认配置就会生效。

@ComponentScan

  1. 配置组件扫描的指令,通过basePackageClasses或者basePackages属性来指定要扫描的包。
  2. 如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包

四、默认配置生效步骤

  • @EnableAutoConfiguration注解会去寻找META-INF/spring.factories文件,读取其中以EnableAutoConfiguration为 key 的所有类的名称,这些类就是提前写好的自动配置类
  • 这些类都声明了@Configuration注解,并且通过@Bean注解提前配置了我们所需要的一切实例。完成自动配置
  • 但是,这些配置不一定生效,因为有@ConditionalOn注解,满足一定条件才会生效。比如条件之一:是一些相关的类要存在
  • 类要存在,我们只需要引入了相关依赖(启动器),依赖有了条件成立,自动配置生效。
  • 如果我们自己配置了相关Bean,那么会覆盖默认的自动配置的Bean
  • 我们还可以通过配置application.yml文件,来覆盖自动配置中的属性

五、添加拦截器

  1. 让一个类实现WebMvcConfigurer,并且添加@Configuration注解
  2. 若想要自定义HandlerMapping、HandlerAdapter、ExceptionResolver等组件,你可以创建一个WebMvcRegistrationsAdapter实例来提供以上组件。
  3. 若想要完全自定义SpringMVC,不保留SpringBoot提供的一切特征,你可以自己定义类并且添加@Configuration注解和@EnableWebMvc注解

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/183997.html