Spring常用注解归类总结

1. Spring基础

Spring框架本身有四大原则:

  • 使用POJO进行轻量级和最小侵入式开发
  • 通过依赖注入和基于接口编程实现松耦合
  • 通过AOP和默认习惯进行声明式编程
  • 通过AOP和模板(template)减少模式化代码

1.1 依赖注入

声明Bean的注解,以下四种注解是等效的,根据需要使用。

@component //组件,没有明确角色
@Service //在业务逻辑层(service层)使用
@Repository //在数据访问层(dao层)使用
@Controller //在展现层(Spring MVC)使用

注入Bean的注解

@Autowire //Spring提供的注解
@Inject //JSR-330提供的注解
@Resource //JSR-250提供的注解

Java配置

@configuration //声明为配置类
@ComponentScan //自动扫描包名下所有声明为Bean的类
@EnableAspectJAutoProxy //开启Spring对AspectJ的支持
@Bean //注解在方法上,声明当前方法的返回值为一个Bean

1.2 AOP

@Aspect  //声明为切面
@PointCut //切点,定义拦截规则
//声明一个advice
@After
@Before
@Around

2. Spring常用配置

@scope //常用的包括Singleton、Prototype、Request、Session,默认为Singleton
@Profile //为不同环境下使用不同的配置提供支持,如开发环境、生产环境

Spring EL

@Value //Spring EL表达式的注入,包括字符、URL、普通文件、配置文件等

Bean的初始化和销毁

@PostConstruct //在构造函数执行完后执行
@PreDestroy //在Bean销毁之前执行

3.Spring高级话题

多线程

@EnableAsync //在配置类中开启对异步任务的支持
@Async //在Bean的方法中声明其是一个异步任务

计划任务

@EnableScheduling //在配置类中开启对计划任务的支持
@Scheduled //在Bean的方法上声明一个计划任务,支持cron、fixedDelay、fixedRate等

条件注解

@Conditional

@Enable*注解

@EnableAspectJAutoProxy //开启对AspectJ自动代理支持
@EnableAsync //开启异步方法支持
@EnableScheduling //开启计划任务支持
@EnableWebMVC //开启Web MVC的配置支持
@EnableConfigurationProperties //开启对@ConfigurationProperties注解配置Bean的支持
@EnableJpaRepositories //开启对Spring Data JPA Repository的支持
@EnableTrasactionManagement //开启注解式事务支持
@EnableCache //开启注解式的缓存支持

测试

@ContextConfiguration //用来加载配置ApplicationContext
@ActiveProfile //用来声明活动的profile

org.springframework.boot.autoconfigure.condition包下是注入动作是否执行的判断注解,常用的几个如下,其他的可以自己看下,比较简单的英文:

  • ConditionalOnClass:类或者方法级别注解,当classpath中有指定的class的时候,才会执行spring注入动作
  • ConditionalOnProperty:类或者方法级别注解,项目环境(比如application.properties)中有指定的配置值的时候,才会执行spring注入动作
  • ConditionalOnMissingBean:类或者方法级别注解,当某个bean在spring上下文中无实例的时候,才会执行spring注入动作,注意该注解无法保证bean的加载顺序,一般和AutoConfigureAfter或者AutoConfigureBefore混用,保证该bean在最后一个执行注入
  • ConditionalOnExpression:类或者方法界别注解,当某个条件成立的时候,比如@ConditionalOnExpression("'${test.name}'.startsWith('hello')"),则表示环境变量中包含test.name的值,且以hello开头,才会执行spring注入动作

org.springframework.boot.autoconfigure包下:

  • AutoConfigureAfter:类级别的注解,在指定的bean注入后,才会被执行注入动作
  • AutoConfigureBefore:类级别的注解,该bean被执行注入动作后,指定的bean才会被注入

 

 

4. Spring MVC

常用注解

@Controller //声明为Spring MVC里的Controller
@RequestMapping //映射Web请求、处理类和方法
@ResposeBody //支持将返回值放在response体内,而不是返回一个页面
@RequestBody //允许request参数在request体内,而不是直接链接在地址后面
@PathVariable //用来接收路径参数
@RestController //是@Controller和@ResposeBody 的组合注解

猜你喜欢

转载自weiboxie.iteye.com/blog/2389631