`
dongguoh
  • 浏览: 70705 次
  • 性别: Icon_minigender_1
  • 来自: 山水之乡
社区版块
存档分类
最新评论

Spring 构造参数的注入方式

阅读更多

HelloBean.java

java 代码
  1. package com.gjx.spring;   
  2.   
  3. import java.util.Date;   
  4.   
  5. public class HelloBean {   
  6.     private String name;   
  7.   
  8.     private String helloWord;   
  9.        
  10.     private Date date;   
  11.   
  12.     public HelloBean() {   
  13.     }   
  14.     public HelloBean(String helloWord,Date date){   
  15.         this.helloWord=helloWord;   
  16.         this.date=date;   
  17.     }   
  18.        
  19.     public HelloBean(String name, String helloWord) {   
  20.         this.name = name;   
  21.         this.helloWord = helloWord;   
  22.     }   
  23.   
  24.     public String getHelloWord() {   
  25.         return helloWord;   
  26.     }   
  27.   
  28.     public void setHelloWord(String helloWord) {   
  29.         this.helloWord = helloWord;   
  30.     }   
  31.   
  32.     public String getName() {   
  33.         return name;   
  34.     }   
  35.   
  36.     public void setName(String name) {   
  37.         this.name = name;   
  38.     }   
  39.     public Date getDate() {   
  40.         return date;   
  41.     }   
  42.     public void setDate(Date date) {   
  43.         this.date = date;   
  44.     }   
  45.   
  46. }   

hellobean-config.xml

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  3.   
  4. <beans>  
  5.     <!-- 默认的情况下是按照 参数的顺序 注入 当指定index索引后就可以改变注入参数的顺序 -->  
  6.     <bean id="helloBean" class="com.gjx.spring.HelloBean">  
  7.         <constructor-arg index="0">  
  8.             <value>冬国</value>  
  9.         </constructor-arg>  
  10.         <constructor-arg index="1">  
  11.             <value>你好 </value>  
  12.         </constructor-arg>  
  13.     </bean>  
  14.        
  15.     <!-- 当构造函数的参数相同时,Spring会自动找到配制的构造方法 也可以用 type 来明确指定要用那个类型-->  
  16.     <bean id="date" class="java.util.Date" />  
  17.     <bean id="helloBean2" class="com.gjx.spring.HelloBean">  
  18.         <constructor-arg index="0">  
  19.             <value>哈哈</value>  
  20.         </constructor-arg>  
  21.         <constructor-arg index="1" type="java.util.Date">  
  22.             <ref bean="date"/>  
  23.         </constructor-arg>  
  24.     </bean>    
  25.        
  26.        
  27. </beans>  

测试

 

java 代码
  1. package Test.com.gjx.spring;   
  2.   
  3. import java.util.Date;   
  4.   
  5. import junit.framework.TestCase;   
  6.   
  7. import org.springframework.beans.factory.BeanFactory;   
  8. import org.springframework.beans.factory.xml.XmlBeanFactory;   
  9. import org.springframework.context.ApplicationContext;   
  10. import org.springframework.context.support.ClassPathXmlApplicationContext;   
  11. import org.springframework.core.io.ClassPathResource;   
  12. import org.springframework.core.io.Resource;   
  13.   
  14. import com.gjx.spring.HelloBean;   
  15. import com.gjx.spring.SomeBean;   
  16.   
  17. public class TestHelloBean extends TestCase {   
  18.     /*  
  19.      * BeanFactory负责读取Bean的定义文件;管理对象的加载。生成。维护Bean对象与Bean对象之间的依赖关系  
  20.      * 但只适合简单的应用程序  
  21.      */  
  22.     public void testHelloWord() {   
  23.         Resource rs = new ClassPathResource("hellobean-config.xml");   
  24.         BeanFactory factory = new XmlBeanFactory(rs);   
  25.         HelloBean hello = (HelloBean) factory.getBean("helloBean");   
  26.         HelloBean hello2 = (HelloBean) factory.getBean("helloBean2");   
  27.            
  28.         System.out.println(hello.getHelloWord()+"  "+hello.getName());   
  29.            
  30.         System.out.println(hello2.getHelloWord()+"  "+(Date)hello2.getDate());   
  31.     }   
  32. }  

结果:

你好   冬国
哈哈  Fri Aug 17 15:10:23 CST 2007

分享到:
评论

相关推荐

    Spring三种注入方式(三)

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

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

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

    spring的setter注入和构造注入(XML讲解以及常见错误)

    setter注入是Spring中最常用的注入方式之一。通过在类中定义setter方法,Spring容器可以在创建对象后,通过这些setter方法设置对象的属性值。以下是一个简单的例子: ```java public class User { private String ...

    spring setter 和构造 注入 例子 spring 4.2.0

    构造器注入则在创建对象时就确保依赖完整,有利于保持对象的封装性,但过多的构造参数可能会导致构造函数过于复杂。 在Spring 4.2.0版本中,这两种注入方式都得到了很好的支持,并且Spring提供了更高级的特性,比如...

    spring的注入方式

    Spring提供了多种注入方式,包括set注入、构造注入和自动注入,让我们逐一深入探讨。 1. **Set注入** Set注入是最常见的注入方式,它通过setter方法来设置对象的依赖。首先,你需要在类中声明需要注入的属性,并...

    Spring的注入方式详解

    然而,过多的构造参数可能会导致构造函数过于复杂,不易阅读和使用。 总的来说,Spring 的注入方式提供了很大的灵活性,可以根据实际情况选择最合适的注入策略。setter 注入和构造方法注入在实际开发中更为常见,...

    Spring三种注入方式(二)

    虽然它有其局限性,但结合其他注入方式,如构造器注入和基于注解的注入,可以在满足不同需求的同时,保持代码的简洁性和灵活性。理解并熟练掌握这些注入方式,对于提升Spring应用的开发效率和质量具有重要意义。

    基于SpringBoot构造器注入循环依赖及解决方式

    在Spring Boot应用中,构造器注入是一种常见的依赖注入方式,但它可能会引发循环依赖的问题。循环依赖是指两个或多个Bean之间形成一个闭环,彼此依赖对方,导致Spring容器在初始化Bean时无法确定创建顺序,从而抛出...

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

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

    spring介绍(set和构造器注入)

    标题中的“spring介绍(set和...综上所述,Spring框架中的setter注入和构造器注入是两种重要的依赖注入方式,它们在实际开发中都有着广泛的应用。理解并合理使用这些注入方式,能够帮助我们构建更健壮、可维护的系统。

    Spring IOC的注入方式总结

    当类有多个构造函数时,Spring会根据参数类型匹配最合适的构造器进行注入。这种方式强制了类在创建时就需要提供所有依赖,有利于尽早发现依赖问题。 ```java public class UserService { private UserRepository ...

    Spring框架构造注入操作实战案例

    在Spring框架中,构造注入可以通过两种方式实现,一种是使用constructor-arg元素,另一种是使用 @Autowired 注解。使用constructor-arg元素可以将依赖项作为构造器参数传递给对象,而使用 @Autowired 注解可以将依赖...

    Spring设值注入和构造注入(通过xml).zip

    本资料主要关注两种注入方式:设值注入(Setter Injection)和构造注入(Constructor Injection),并通过XML配置文件进行管理。 设值注入是通过setter方法来注入依赖的。首先,我们需要在类中声明需要注入的属性,...

    Spring_0300_IOC_Injection_Type 构造器注入

    Spring支持多种类型的构造器注入,包括单一参数的构造器和多个参数的构造器。 1. 单一参数构造器注入 当只有一个参数时,Spring会自动匹配类型并调用相应的构造器。例如: ```java public class UserService { ...

    SpringIoc注入

    除了Spring内置的注入方式,我们还可以自定义注入逻辑。例如,创建一个自定义注解并使用`@ComponentScan`扫描包含该注解的类,然后在`BeanPostProcessor`中处理这些注解,实现特定的注入行为。 **总结** Spring的...

    spring依赖注入

    在Spring中,依赖注入主要有三种方式:构造器注入、setter注入和接口注入。构造器注入是在对象实例化时通过构造函数传入依赖;setter注入则是通过调用对象的setter方法来设置依赖;接口注入则相对较少使用,它通过...

    spring的三种注入方式

    Spring提供了三种主要的注入方式,分别是:构造器注入、setter注入(类型2)和基于注解的注入(类型3)。下面我们将详细探讨这三种注入方式及其应用场景。 ### 1. Setter注入 (Type2) setter注入是最常见的注入方式...

    详解Spring 两种注入的方式(Set和构造)实例

    选择哪种注入方式取决于具体需求,构造注入适合对依赖有严格要求的情况,而Set注入则更加灵活,适用于依赖可选或需要后期修改的情况。理解并熟练掌握这两种注入方式,能够帮助开发者更好地利用Spring框架,提高代码...

    SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)

    2. 使用Spring Data JPA:Spring Data JPA是基于JPA(Java Persistence API)的,它提供了一种声明式的方式处理数据库查询。通过定义Repository接口,你可以避免直接编写SQL,减少SQL注入的可能性: ```java public...

Global site tag (gtag.js) - Google Analytics