Spring 手工装配对象

原创 2011年01月08日 18:32:00

手工装配依赖对象,在这种方式中又有两种编程方式
1. 在xml配置文件中,通过在bean节点下配置,如

<bean id="orderDao" class="cn.itcast.service.OrderDao" />
<bean id="orderService" class="cn.itcast.service.OrderServiceBean">
    <constructor-arg index=“0” type=“java.lang.String” value=“xxx”/>//构造器注入
    <property name=“name” value=“zhao/>//属性setter方法注入

    <property name="orderDao" ref="orderDao"/>//关联orderDao
</bean>
2. 在java代码中使用@Autowired或@Resource注解方式进行装配。但我们需要在xml配置文件中配置以下信息:
<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-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
          <context:annotation-config/>
</beans>

这个配置隐式注册了多个对注释进行解析处理的处理器:

AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,

PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor
      注: @Resource注解在spring安装目录的lib/j2ee/common-annotations.jar
导入spring.jar中就有了

 

在java代码中使用@Autowired或@Resource注解方式进行装配,
这两个注解的区别是:@Autowired 默认按类型装配,@Resource默认按名称装配,
当找不到与名称匹配的bean才会按类型装配。


    @Autowired

    private PersonDao  personDao;//用于字段上

    @Autowired

    public void setOrderDao(OrderDao orderDao) {//用于属性的setter方法上

        this.orderDao = orderDao;

    }

@Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:

    @Autowired  @Qualifier("personDaoBean")

    private PersonDao  personDao;


@Resource注解和@Autowired一样,也可以标注在字段或属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。

    @Resource(name=“personDaoBean”)

    private PersonDao  personDao;//用于字段上


注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时, @Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

相关文章推荐

多学一点(一)——在 Linux 下安装 JDK 和 Tomcat

1.什么是 Tomcat:Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共...

学习笔记(二)——单用户模式、救援模式、运行级别、启动流程、登录文件

1.单用户模式:   Linux 中的单用户模式可以类比一下 Windows 中的安全模式。在单用户模式下很常用的功能是修改 root 密码。如何进入单用户模式:   重启Linux,3秒钟内按一下回...

手工方式实现Spring工厂创建对象

Sping的主要功能就是省去了我们自己创建对象的麻烦,下面就用一个简单的例子,利用Java的DOM解析、反射机制简单实现Spring工厂。当然这是简单实现,没有实际spring工厂那么复杂。但是原理基...

注入依赖对象手工装配

依赖对象的注入分手工装配和自动装配两种方式,在不是很清楚工具的情况下,还是建议手工装配避免很多不必要的错误,而手工装配依赖对象的注入分两种情况: 1.使用bean.xml文件通过构造器或者sette...

spring手工装配 条件

spring依赖注入--手工装配—注解方式 2011-03-21 22:47 在java代码中使用@Autowired或@Resource注解方式进行装配的前提条件是。 ...

Spring实战第4版[手工完美书签]

  • 2017年11月18日 17:06
  • 108.88MB
  • 下载

spring手工笔记

  • 2009年06月24日 14:21
  • 25KB
  • 下载

手工创建TR打包对象并导入到其他任意SAP系统

1.  SE01 创建TR: 手工添加要传输的对象 或者用SE80将对象写入TR, Save and Release, SAP会在以下路径生成两个文件 2. S...

手工创建TR打包对象并导入到其他任意SAP系统

在项目看到BASIS用过一回,没有细究 1.  SE01 创建TR: 手工添加要传输的对象 或者用SE80将对象写入TR, Sa...

手工创建TR打包对象并导入到其他任意SAP系统

在项目看到BASIS用过一回,没有细究 1.  SE01 创建TR: 手工添加要传输的对象 或者用SE80将对象写入TR, Sa...
  • zeewjj
  • zeewjj
  • 2013年09月26日 19:07
  • 1854
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring 手工装配对象
举报原因:
原因补充:

(最多只允许输入30个字)