1:IOC相关的注解
@Component 标注在类上,标注了这个注解意味着这个类会交给Spring管理
@Controller 标注在类上,通常在控制层使用,用来标注当前类是一个控制器
@Service 标注在类上,通常在业务层使用,即Service层
@Repository 标注在类上,通常用来标注数据访问层,即dao层或者mapper层
@Autowired 标注属性上,由Spring提供,用来注入一个对象
@Resource 标注在属性上,用来注入一个实例,由JSR250提供
@Inject 标注在属性上,用来注入一个实例,由JSR-330提供
2:配置相关的注解
@Configuration 标注在类上,用来声明当前类是一个配置类,取代了原始的spring配置文件
@Bean 标注在方法上,用来生命当前方法返回一个实体,用来取代原始的<bean></bean>标签,可以有一个参数,
例如 : @Bean("beanName")表示注入IOC容器中的实例的名称为beanName
@Primary 标注在方法上,经常和@Bean配合使用,首选的意思,当某个类在容器中的实例有多个时,首选这个
@ComponentScan 标注在类上,用来扫描被@Component @Controller @Service @Repository标注的类
@Scope 标注在接口、类、方法上,用来表示该实例在IOC容器中的作用域。eg:@Scope("singleton")表示单例
@Conditional({}) 标注在类上或者方法上,标注在类上的时候表示满足制定条件,类中配置的bean才会生效,标注在方法上,表示满足条件,方法才会执行
@Import({User.class,Persion.class}) 表注在类上,表示将User类和Person的注册到容器中
3:切面相关的注解(Spring支持AspectJ的注解切面编程)
@Aspect 标注在类上,声明当前类是一个切面;
@After 标注在方法上,表示在目标方法执行后执行,也叫后置通知;
@Before 标注在方法上,表示在目标方法执行前执行,即前置通知;
@Around 标注在方法上,在方法执行前与之后执行,即环绕通知
@PointCut 标注在方法上,声明一个切入点;
@AfterThrowing 标注在方法上,表示当目标方法发生异常是执行,即异常通知;
@AfterReturning 标注在方法,在方法执行完之后执行的代码,即最终通知;
4:属性绑定的注解
@Value 标注在属性上,为属性注入值,编码的时候字面量是不允许出现在代码中的,一般都是写在配置文件中,通过@Value注解绑定在类中的属性上。
@PropertySource({}) 标注在类上,将外部的配置文件和实体类绑定在一起,在参数中制定配置文件的位置
5:环境动态切换
@Profile 标注在类上或方法上,通过设定Environment的ActiveProfiles来设定当前context需要使用的配置文件
6:定时任务相关的注解
@EnableScheduling 标注在类上,表示当前类是一个定时任务类
@Scheduled 标注在方法上,表示具体要执行的任务
未完,待续......