Spring Annotation总结

 

@Autowired 注释 
   对类成员变量、方法及构造函数进行标注,完成自动装配的工作
   在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。
   当找不到一个匹配的 Bean 时,Spring 容器将抛出 BeanCreationException 异常,并指出必须至少拥有一个
   匹配的 Bean.
   当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用
   @Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错
@Qualifier 注释 
   我们在 Spring 容器中配置了两个类型相同的Bean时,当对 bean的成员变量进行自动注入时,
   Spring 容器将无法确定到底要用哪一个Bean,用@Qualifier 注释可以指定具体的bean
  @Qualifier("bean名") ; @Autowired 和 @Qualifier 结合使用时,
   自动注入的策略就从 byType 转变成 byName 了。@Autowired 可以对成员变量、方法以及构造函数
   进行注释,而@Qualifier 的标注对象是成员变量、方法入参、构造函数入参。正是由于注释对象的不同,
   所以 Spring 不将 @Autowired 和 @Qualifier 统一成一个注释类。
@Resource注释 
   @Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,
   而 @Resource 默认按 byName 自动注入罢了。
  @Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将 @Resource 注释的 name 属性解析为
   Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入
   策略, 而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将
   通过反射机制使用 byName 自动注入策略。
@PostConstruct注释 
   标注的方法在类实例化后调用
@PreDestro注释 
   标注的方法将在类销毁之前调用
@Component注释 
   将一个类定义了Spring 容器中的Bean
   @Component 有一个可选的入参,用于指定 Bean 的名称
   一般情况下,Bean 都是 singleton 的,需要注入Bean的地方仅需要通过byType 
   策略就可以自动注入了,所以大可不必指定Bean的名称
@Repository注释 
   和@Component 是等效的,命名上看来是持久层
@Service注释 
   和@Component 是等效的,命名上看来是业务层
@Controller注释 
   和@Component 是等效的,命名上看来是控制层


 

@Autowired 注释 
   对类成员变量、方法及构造函数进行标注,完成自动装配的工作
   在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。
   当找不到一个匹配的 Bean 时,Spring 容器将抛出 BeanCreationException 异常,并指出必须至少拥有一个
   匹配的 Bean.
   当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用
   @Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错
@Qualifier 注释 
   我们在 Spring 容器中配置了两个类型相同的Bean时,当对 bean的成员变量进行自动注入时,
   Spring 容器将无法确定到底要用哪一个Bean,用@Qualifier 注释可以指定具体的bean
  @Qualifier("bean名") ; @Autowired 和 @Qualifier 结合使用时,
   自动注入的策略就从 byType 转变成 byName 了。@Autowired 可以对成员变量、方法以及构造函数
   进行注释,而@Qualifier 的标注对象是成员变量、方法入参、构造函数入参。正是由于注释对象的不同,
   所以 Spring 不将 @Autowired 和 @Qualifier 统一成一个注释类。
@Resource注释 
   @Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,
   而 @Resource 默认按 byName 自动注入罢了。
  @Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将 @Resource 注释的 name 属性解析为
   Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入
   策略, 而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将
   通过反射机制使用 byName 自动注入策略。
@PostConstruct注释 
   标注的方法在类实例化后调用
@PreDestro注释 
   标注的方法将在类销毁之前调用
@Component注释 
   将一个类定义了Spring 容器中的Bean
   @Component 有一个可选的入参,用于指定 Bean 的名称
   一般情况下,Bean 都是 singleton 的,需要注入Bean的地方仅需要通过byType 
   策略就可以自动注入了,所以大可不必指定Bean的名称
@Repository注释 
   和@Component 是等效的,命名上看来是持久层
@Service注释 
   和@Component 是等效的,命名上看来是业务层
@Controller注释 
   和@Component 是等效的,命名上看来是控制层

猜你喜欢

转载自callmegod.iteye.com/blog/1474259