以下内容汇成了一张思维导图,欢迎下载!
https://download.csdn.net/download/weixin_47429870/72029161
IoC
org.springframework.stereotype
@Repository
用于标注数据访问组件,即 DAO 实现类
@Service
用于标注业务实现类
@Controller
用于标注控制层类,通常与 RequestMapping 注解结合使用
@Component
泛指组件,当某个组件不好分类时使用该注解,使用在实体类上,不写 value 的话,bean 名字默认为类名首字母小写
DI
org.springframework.beans.factory.annotation
@Autowired
完成属性/字段注入,注入的是 bean(取代 XML property ref 元素)
@Qualifier(“name”)
当有多个同一类型的 bean 存在时,可以使用该注解进行指定
@Value
完成属性/字段注入,注入的是常量值(取代 XML property value 元素)
SpringMVC
org.springframework.web.bind.annotation
@RestController
等价于 @Controller + @ResponseBody
@ResponseBody
表示该方法的返回值放在响应体中,一般在异步请求中使用,用于获取数据,比如响应 JSON 数据需要用到该注解
@RequestParam
将请求参数绑定到方法参数上,当请求参数名和形参名不一致时可以使用该注解起名
@RequestMapping(“映射路径”)
用来处理请求地址映射的注解,用于类或方法上
@ControllerAdvice
-
全局异常处理
-
全局数据绑定:用于做一些数据初始化操作
-
全局数据预处理
@ExceptionHandler
用于指明异常的处理类型
@InitBinder
SpringMVC 并不能对所有类型的参数都进行绑定,该注解则能够对 WebDataBinder 对象进行初始化,WebDataBinder 是 DataBinder 的子类,用于完成表单参数到 JavaBean 属性的绑定
@PathVariable
该注解能够将路径参数从 url 上解析下来,并赋值给接口声明的形参,如果参数路径上的参数名与方法声明形式参数名不一致,则需要明确指定
SpringBoot
@SpringBootAplication
表示当前类为 SpringBoot 的引导启动类,由 @SpringBootConfiguration、@EnableAutoConfigutation、@ComponentScan 构成
@SpringBootConfiguration
标记当前类为配置类,继承自 @Configuration,将当前类中声明的一个或多个贴有 @Bean 的方法生成并放到 Spring 容器中,实例名为方法名,相当于<beans></beans>
@EnableAutoConfiguration
字面意思即启用自动配置,用于实现自动配置
Java Config
@Configuration
用于定义配置类,声明一个或多个 @Bean 方法,并交由Spring容器管理,以便在运行时为这些bean生成 BeanDefinition 和服务请求
@Bean
贴了该注解的方法返回的对象会交给 Spring 容器管理,相当于<bean></bean>
属性
- name:用于给bean取别名
- initMethod:配置bean的初始化方法
- destroyMethod:配置bean的销毁方法
@ComponentScan
用于扫描贴有 Spring 提供的 IoC、DI 注解,比如 Service、Controller 等,并创建对象放到 Spring 容器中。如果没有明确指明扫描路径,则代表扫描路径为当前类所在包下的所有类
在 Spring 配置类上贴该注解表示开启组件扫描器,默认扫描当前配置类所在的包,也可以自己指定,相当于<content:component-scan>
@PropertySource
加载指定的 properties 配置文件到 Spring 的 Environment中,Environment 接口提供方法去读取配置文件中的值,参数是properties 文件中定义的key值
@ConfigurationProperties
读取系统全局的配置文件
@ImportResource
导入 Spring 配置文件,让配置文件中的内容生效
日期处理注解
@JsonFormat(pattern = “yyyy-MM-dd HH:mm”)
出参格式化
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm”)
入参格式化
定时器
org.springframework.scheduling.annotation
@EnableScheduling
开启对定时任务的支持,贴在类上
@EnableAsync
开启异步事件的支持,贴在类上
@Scheduled
任务调度注解,根据指定执行计划执行方法体逻辑
SpringCloud
@EnableDiscoveryClient
服务注册
@LoadBalanced
负载均衡