`
wangzhen5
  • 浏览: 80851 次
  • 性别: Icon_minigender_1
  • 来自: 河南省
社区版块
存档分类
最新评论

spring的三中注入方式

阅读更多
关于Spring的注入方式
spring的三种注入方式:

--------------------------------------------------------------------------------


1.接口注入(不推荐)
2.getter,setter方式注入(比较常用)
3.构造器注入(死的应用)

--------------------------------------------------------------------------------

关于getter和setter方式的注入:

• autowire="defualt"
• autowire=“byName”
• autowire="bytype"
例如:有如下两个类需要注入

1 package org.jia;
2
3 public class Order {
4     private String orderNum;
5     @SuppressWarnings("unused")
6     private OrderItem orderitem;
7
8     public OrderItem getOrderitem() {
9         return orderitem;
10     }
11
12     public void setOrderitem(OrderItem orderitem) {
13         this.orderitem = orderitem;
14     }
15
16     public String getOrderNum() {
17         return orderNum;
18     }
19
20     public void setOrderNum(String orderNum) {
21         this.orderNum = orderNum;
22     }
23    
24 }
25 package org.jia;
26
27 public class OrderItem {
28     private String orderdec;
29
30     public String getOrderdec() {
31         return orderdec;
32     }
33
34     public void setOrderdec(String orderdec) {
35         this.orderdec = orderdec;
36     }
37 }
38 getter&&setter方式第一种注入:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="orderItem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" >
        <!-----注入变量 名字必须与类中的名字一样------->
        <property name="orderNum" value="order000007"></property>
         <!--注入对象 名字为orderitem,所属的类的应用id为orderItem-->
        <property name="orderitem" ref="orderItem"></property>
   
    --></bean>


</beans>getter&&setter方式第二种注入: byName

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!--此时的id就必须与Order.java中所定义的OrderItem的对象名称一样了,不然就会找不到-->
    <bean id="orderitem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" autowire="byName">
        <property name="orderNum" value="order000007"></property>
    </bean>
</beans>getter&&setter方式第三种注入:byType

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!--按照byType注入则就与id没有关系,可以随便定义id !!!但是不能出现多个此类的id-->
    <bean id="orderitdfadafaem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" autowire="byType">
        <property name="orderNum" value="order000007"></property>
    </bean>
</beans>

关于构造器的注入:

autowire="constructor"
需要在Order.java中加入一个构造器
public Order(OrderItem item ){ orderitem = item; }

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="orderItem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" autowire="constructor">
        <property name="orderNum" value="order000007"></property>
    </bean>
</beans>
分享到:
评论

相关推荐

    Spring三种注入方式(三)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...

    Spring的注入方式详解

    下面我们将详细探讨Spring 中的三种注入方式:接口依赖注入(Type1)、setter/getter 注入(Type2,也称为属性注入)和构造方法注入(Type3)。 1. **接口依赖注入(Type1)** 这种注入方式相对不常见,主要适用于...

    Spring注释 注入方式源码示例,Annotation

    花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...

    Spring依赖注入的方式

    本文将深入探讨Spring中的依赖注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过在类的构造函数中传入依赖对象来实现的。Spring容器在创建对象时,会调用带有相应依赖的构造...

    Spring注入的方式

    本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...

    spring学习:依赖注入的几种方式讨论

    本文将深入探讨Spring中的依赖注入实现方式,以及如何通过样例文件`sample-autoconfig`进行理解和实践。 一、XML配置的依赖注入 在Spring早期版本中,XML配置是最常见的DI方式。开发者在Spring的配置文件(如`...

    spring依赖注入底层详解

    在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...

    Spring三种注入方式(二)

    本篇主要介绍Spring中的三种注入方式,着重讲解在"Spring三种注入方式(二)"中的内容。我们将深入探讨setter注入,这是Spring中最常见的注入方式之一。 ### 一、setter注入 setter注入是通过Spring容器调用对象的...

    Spring 三种依赖注入方式.doc

    Spring 框架中提供了多种依赖注入方式,其中最常用的三种依赖注入方式分别是接口注入、设值注入和构造函数注入。下面,我们将分别对这三种依赖注入方式进行详细的介绍和分析。 一、接口注入 接口注入是指通过接口...

    spring依赖注入三种方式 测试源码

    本文将深入探讨Spring中的三种依赖注入方式,并结合源码分析其工作原理。 1. **构造器注入** 构造器注入是通过构造函数来传递依赖对象的。当创建一个类的新实例时,Spring容器会调用带有所需参数的构造函数,从而...

    Spring三种注入方式(一)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...

    SPRING IOC注入方式过程解析

    SPRING IOC注入方式过程解析 SPRING IOC是一种轻量级的控制反转(Inversion of Control)容器框架,主要用于解耦合Java应用程序中的组件。其中,IOC(Inversion of Control)注入是SPRING IOC的核心机制之一。下面...

    关于spring boot中几种注入方法的一些个人看法

    Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...

    Spring依赖注入使用构造设注入demo

    本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...

    spring的注入方式.doc

    详细介绍spring的三种注入方式,带有实例和图片

    spring依赖注入的实现原理

    二、Spring依赖注入的实现方式 1. **setter方法注入**:Spring通过调用对象的setter方法来设置其依赖的实例。在bean配置文件中,使用`&lt;property&gt;`标签指定依赖属性。 2. **构造器注入**:Spring可以通过调用带有多...

    Spring定义bean的三种方式和自动注入

    下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`文件中定义Bean。例如,对于`Student`和`Teacher`类,我们分别创建`bean`标签...

    Spring注解注入属性

    ### Spring注解注入属性 #### 一、传统方式与注解方式对比 在Spring框架中,依赖注入(DI)是一种核心的设计模式,用于促进松耦合的系统设计,使得组件之间的依赖关系可以在运行时动态地建立,而不是在编译时硬...

    Spring依赖注入检查.

    Spring框架提供了两种主要的DI方式:构造器注入和setter注入。 1. **构造器注入**: 当类需要依赖其他对象时,Spring可以通过构造函数传递这些依赖。这样,每次创建类的新实例时,依赖项都会自动设置。例如: ``...

    spring依赖注入例子

    通过这种方式,Spring的依赖注入帮助我们实现了低耦合,使得`UserService`只关注业务逻辑,而不关心数据访问的具体实现。这提高了代码的可读性、可测试性和可维护性。 在提供的`springDemo`压缩包中,可能包含了...

Global site tag (gtag.js) - Google Analytics