1. 生成bean对象
- @Bean
- @Controller @Service @Repository @Component 注解标注该类,然后再使用 @ComponentScan 扫描包
- @Import 方法
- 传入普通类,则将此类注入IOC容器
- 传入普通类实现ImportSelector接口,返回需要导入的组件的全类名数组,将之下所有类注入IOC
- 传入普通类实现ImportBeanDefinitionRegistrar接口,自己可以注入对象
2. 条件注解
- @Conditional 条件化加载bean,实现Condition接口,并重写matches方法,从而决定该bean是否被实例化
- @ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
- @ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
- @ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
- @ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
- @ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
- @ConditionalOnNotWebApplication(不是web应用)
3. mvc相关注解
- @EnableWebMvc 在配置类中开启Web MVC的配置支持,如一些ViewResolver或者MessageConverter等
- @Controller 声明该类为SpringMVC中的Controller
- @RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody
- @RequestMapping 用于映射Web请求,包括访问路径和参数(类或方法上)
- @ResponseBody 支持将返回值放在response内,而不是一个页面,通常用户返回json数据(返回值旁或方法上)
- @RequestBody 允许request的参数在request体中,而不是在直接连接在地址后面。(放在参数前)
- @PathVariable 用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。
- @ControllerAdvice 通过该注解,我们可以将对于控制器的全局配置放置在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上, 这对所有注解了 @RequestMapping的控制器内的方法有效。
- @ExceptionHandler 用于全局处理控制器里的异常
- @InitBinder 用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中
4. 注入注解
- @Autowired 按类型装配
- @Resource 默认安照名称进行装配
5. bean生命周期注解
- @PostConstruc 这个方法就会在Bean初始化之后被Spring容器执行(注:Bean初始化包括,实例化Bean,并装配Bean的属性(依赖注入))
- @PreDestroy 类销毁前
6. 环境注解
- @profile
7. bean加载顺序
- @DependsOn 控制bean的加载顺序
8. 定时任务注解
- @EnableScheduling 在配置类上使用,开启计划任务的支持(类上)
- @Scheduled 方法上使用,来申明这是一个任务,包括cron,fixDelay,fixRate等类型