细谈Spring(十一) @Resource、@Autowired、@Qualifier的注解注入及区别


spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖。在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入。虽然@Resource和@Autowired都可以来完成注入依赖,但它们之间是有区 别的。首先来看一下:

 a。@Resource注解是又J2EE提供,而@Autowired是由Spring提供,故减少系统对spring的依赖建议使

    用@Resource的方式;@Resource默认是按照名称来装配注入的,

    如果没有指定name属性,并且按照默认的名称仍然找不到依赖的对象时

    候,会回退到按照类型装配,但一旦指定了name属性,就只能按照名称 装配了.


 b。@Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在如果允许为null,可

    以设置它required属性为false,如果想按照名称来转配注入,则需要结合@Qualifier一起

    使用;


c。 @Resource和@Autowired都可以书写标注在字段或者该字段的setter方法之上


2、 使用注解的方式,我们需要修改spring配置文件的头信息,,如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd"
      
        >
  
       <context:component-scan base-package="要解析注解类的包路径" />
       
   </beans>



你可能感兴趣的:(java,spring,null,false)