SpringBoot核心注解
@SpringBootApplication
- @SpringBootConfiguration:组合了 @Configuration 注解,表明该类是一个配置类
- @EnableAutoConfiguration:打开自动配置的功能
- @ComponentScan:启用组件扫描
SpringBoot 自动配置原理了解吗?
在 Spring Boot 中,开启自动装配的注解是@EnableAutoConfiguration
。
Spring Boot 为了进一步简化,直接通过 @SpringBootApplication
注解一步搞定,该注解包含了 @EnableAutoConfiguration
注解。
main 类启动的时候,Spring Boot 会通过底层的AutoConfigurationImportSelector
类加载自动装配类。
@AutoConfigurationPackage //将main同级的包下的所有组件注册到容器中
@Import({AutoConfigurationImportSelector.class}) //加载自动装配类 xxxAutoconfiguration
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class<?>[] exclude() default {};
String[] excludeName() default {};
}
AutoConfigurationImportSelector
实现了ImportSelector
接口,该接口的作用是收集需要导入的配置类,配合 @Import()
将相应的类导入到 Spring 容器中。
自动配置微调:
有时候我们只需要微调下自动配置就能满足需求,并不需要覆盖自动配置的Bean,此时我们可以在application.yml属性文件中进行配置。
spring:
datasource:
url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
SpringBoot常用注解:
组件相关:@Controller,通常与
@RequestMapping
联用,@Service,@Repository,@Component;依赖注入注解:
@Autowired(根据对象的
类型
自动注入),可以配置required=false
来注入不一定存在的对象。@Resource根据对象的
名称
自动注入依赖对象,(name = "umsAdminServiceImpl")@Qualifier("umsAdminServiceImpl"),当同一个对象有多个实例可以注入时,使用
@Autowired
注解无法进行注入,这时可以使用@Qualifier
注解指定实例的名称进行精确注入。SpringMVC相关注解:
@RequestMapping 用于映射请求路径和请求方法到控制器方法上。
@RequestBody 用于接收请求体中的 JSON 数据,并将其自动转换为 Java 对象。
@ResponseBody 用于将控制器方法的返回值转换为 JSON 或其他格式的数据,并写入响应体。
@RequestParam 用于接收请求参数,支持以下几种场景:
Query Parameter:GET 请求中拼接在 URL 中的参数。
Form Data:POST 请求中表单提交的参数。
Multipart:文件上传请求中的部分参数。
@PathVariable 用于接收 URL 中的动态路径参数,常用于 REST 风格的 API。
@RestController 用于定义一个控制器类,自动将方法的返回值作为响应体返回,无需额外的
@ResponseBody
注解。@GetMapping,@PostMapping
配置相关注解
@Configuration
@ComponentScan
@EnableCaching
@Value
jwt: tokenHeader: Authorization # JWT存储的请求头 secret: mall-admin-secret # JWT加解密使用的密钥 expiration: 604800 # JWT的超期限时间(60*60*24*7) tokenHead: 'Bearer ' # JWT负载中拿到开头
@ConfigurationProperties
数据库事务相关注解
@EnableTransactionManagement:启用Spring基于注解的事务管理功能,需要和
@Configuration
注解一起使用。@Transactional
全局异常处理注解:
@ControllerAdvice:常与
@ExceptionHandler
注解一起使用,用于捕获全局异常,能作用于所有controller中@ExceptionHandler:修饰方法时,表示该方法为处理全局异常的方法。