@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Repository用于标注数据访问组件,即DAO组件。
@Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action)
@Scope用于指定scope作用域的(用在类上)取值有两个 singleton(单例:默认) prototype(多例)
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier(“personDaoBean”) 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

注意

@Scope注解:用于指定bean的作用范围,取值有两个 singleton(单例:默认) prototype(多例)
@Autowired(自动注入):当容器中只存在一个相同类型的bean时会自动注入,当没有相同类型的时候不会 注入,如果有多个相同类型的bean会报错,这时候就要配合使用Qualifier(),括号内指明多个相同类型bean中其中一个的id
例1:
@Autowired
@Qualifier("userDaoImpl2")

上面例1可以用Resource注解替换,但注意Resource注解的属性时name,如下
@Resource(name="userDaoImpl1")

以上三种注解只能注入引用类型的数据
基本类型的数据使用Value属性注入,其中属性值可以使用spring的el表达式
集合类型只能在xml中注入 
  • @Component用于创建对象的注解
  • 注意:不带参数,@Component,默认getBean(“类名首字母小写”);
  • 带参数,参数就是xml中bean的id,@Component(“test”),getBean(“test”);
  • 下面的三个注解是对@Component注解的根据三层的细化
  • @Controller 一般用在表现层
  • @Service 一般用在业务层
  • @Repository 一般用在持久层
最后修改日期:2020-07-13

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。