首页常见问题正文

Spring中的Bean:基于Annotation的装配

更新时间:2024-01-23 来源:黑马程序员 浏览量:

IT培训班

  在Spring中,尽管使用XML配置文件可以实现Bean的装配工作,但如果应用中Bean的数量较多,会导致XML配置文件过于臃肿,从而给维护和升级带来一定的困难。

  Java从JDK5.0以后,提供了Annotation(注解)功能,Spring也提供了对Annotation技术的全面支持。Spring3中定义了一系列的Annotation(注解),常用的注解如下。

1705973478038_基于Annotation的装配.jpg

  1.@Component:可以使用此注解描述Spring中的Bean,但它是一个泛华概念,仅仅表示一个组件(Bean),并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可。

  2.@Repository:用于将数据访问层(DAO层)的类标识为Spring中的Bean,其功能与@Component相同。

  3.@Service:通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean,其功能与@Component相同。

  4.@Controller:通常作用在控制层(如Struts2的Action),用于将控制层的类标识为Spring中的Bean,其功能与@Component相同。

  5.@Autowired:用于对Bean的属性变量、属性的Set方法及构造函数进行标注,配合对应的注解处理器完成Bean的自动配置工作。默认按照Bean的类型进行装配。

  6.@Resource:其作用与Autowired一样。其区别在于@Autowired默认按照Bean类型进行装配,而@Resource默认按照Bean实例名称进行装配。@Resource中有两个重要属性:name和type。Spring将name属性解析为Bean实例名称,type属性解析为Bean实例类型。如果指定name属性,则按实例名称进行装配;如果指定type属性,则按Bean类型进行装配;如果都不指定,则先按Bean实例名称装配,如果不能匹配,则再按照Bean类型进行装配;如果都无法匹配,则抛出NoSuchBeanDefinitionException异常。

  7.@Qualifier:与@Autowired注解配合使用,会默认的按Bean类型装配修改为按Bean的实例名称装配,Bean的实例名称由@Qualifier注解的参数指定。

  在上面几个注解中,虽然@Repository、@Service和@Controller功能与@Component注解的功能相同,但是为了更加清楚地表示出标注类的用途,建议使用@Repository、@Service与@Controller分别对实现类进行标注。

  本文版权归黑马程序员Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!

  作者:黑马程序员Java培训学院

  首发:https://java.itheima.com

分享到:
在线咨询 我要报名
和我们在线交谈!