`
mzhj
  • 浏览: 223443 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring依赖注入之构造器注入

阅读更多

Spring2.5的注入依赖(DI)主要有三种注入方式,即构造器注入、Setter注入和使用注解方式;注入依赖可以分为手工装配和自动装配,spring开发团队建议使用手工装配。

    今天主要说说构造器注入

    基于构造器的DI通过调用带参数的构造器来实现,每个参数代表着一个依赖。

1.持久层   ,spring是基于接口编程的,请注意接口

public class StudentDao implements IStudentDao {

 public void saveStudent() {
  System.out.println("成功保存一个学生信息");

 }
}

2.服务层

public class StudentService implements IStudentService {


   private IStudentDao studentDao;
   private String id;


   public StudentService(IStudentDao studentDao,String id){
    this.studentDao = studentDao;
    this.id = id;
   }
 public void saveStudent() {
  studentDao.saveStudent();
  System.out.print(",ID为:"+id);
 }

}

3.spring配置

  <bean id="studentDao" class="com.wch.dao.impl.StudentDao"></bean>
  <bean id="studentService" class="com.wch.service.impl.StudentService">
      <constructor-arg index="0" type="com.wch.dao.IStudentDao" ref="studentDao" />
      <constructor-arg index="1" value="123456" type="java.lang.String"></constructor-arg>
  </bean>

注:

'type'属性来显式指定那些构造参数的类型

index属性来显式指定构造参数的索引,从0开始

 

 

 

4.经行测试,代码如下

public class TestSpringBuild extends TestCase{
 private AbstractApplicationContext ctx = null;
 @Before
 public void setUp() throws Exception {
  //ctx = new ClassPathXmlApplicationContext("bean.xml");
  ctx = new FileSystemXmlApplicationContext("classpath:bean.xml");
 
 }
  
 @After
 public void tearDown() throws Exception {
       ctx.close();
 }
 
 @Test public void testBuild(){
  StudentService studentService = (StudentService)ctx.getBean("studentService");
  studentService.saveStudent();
 }
}

分享到:
评论

相关推荐

    Spring系列之依赖注入的三种方式.docx

    如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的 依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程(将依赖关系注入到对象中) ,spring的依赖注入有3种方式: ...

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

    1. 循环依赖是什么? Bean A 依赖 B,Bean B 依赖 A这种情况下出现循环依赖。 Bean A → Bean B → Bean A 更复杂的间接依赖造成的循环...Spring先创建beanC,接着创建bean B(将C注入B中),最后创建bean A(将B注

    Spring中依赖注入与容器

    - 构造器注入 - 属性(setter)注入  容器 容器是管理 组件的生命周期,注入组件(声明)所需的资源 例如: 容器 : 国家 义务教育、纳税、社保、医疗、养老 组件 : 公民 - apache tomcat 是 JSP/Servlet 容器,...

    SpringSet方法注入

    我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频

    详解Spring的核心机制依赖注入

    详解Spring的核心机制依赖注入 对于一般的Java项目,他们都或多或少有一种依赖型的关系,也就是由一些互相协作的对象构成的。Spring把这种互相协作的关系称为依赖关系。如A组件调用B组件的方法,可称A组件依赖于B...

    Spring从入门到入土——依赖注入(DI)

    DIDependency Injection概念注入方式构造器注入**==Set注入==**测试pojo类:Bean注入:结果:p命名和c命名注入p命名空间注入:c命名空间注入 相关文章 跟着官网学spring—快速入门指南 跟着官网学Spring—构建...

    Spring开发指南

    依赖注入的几种实现类型 Type1 接口注入 Type2 设值注入 Type3 构造子注入 几种依赖注入模式的对比总结 Spring Bean封装机制 Bean Wrapper Bean Factory ApplicationContext Web Context Spring 高级...

    spring4示例代码

    spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域。 spring-2 演示了外部配置文件的引入(connection)...

    (一)spring 的依赖注入,您了解多少?

    网上基本说有三种方式:构造器注入、setter注入、接口注入,或者再加上一种注解注入。本文详细介绍下注入的模式和类型。  依赖注入的模式,依赖注入模式一般分为两类:手动注入和自动注入。  手动模式即配置或者...

    spring2.5学习PPT 传智博客

    07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类型的属性 10_使用构造器装配属性 11_用@Resource注解完成属性装配 12_编码剖析@Resource注解的实现原理 ...

    Spring攻略PDF版

     3.3 解决构造器歧义   3.3.1 问题描述   3.3.2 解决方案   3.3.3 实现方法   第4章 高级Spring IoC容器   第5章 动态代理和经典的Spring AOP   第6章 Spring 2.x AOP和AspectJ支持  第...

    Spring的Bean配置

    Spring IOC和DI概述,Bean的配置形式,IOC容器BeanFactory和ApplicationContext概述,依赖注入的方式,属性注入,构造器注入等案例

    Spring面试题含答案.pdf

    20. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入? 21.什么是 Spring beans? 22. 一个 Spring Bean 定义 包含什么? 23. 如何给 Spring 容器提供配置元数据? 24. 你怎样定义类的作用域? 25. ...

    Spring攻略中文版PDF

     3.3 解决构造器歧义   3.3.1 问题描述   3.3.2 解决方案   3.3.3 实现方法   第4章 高级Spring IoC容器   第5章 动态代理和经典的Spring AOP   第6章 Spring 2.x AOP和AspectJ支持  第...

    Spring攻略英文版(附带源码)

     3.3 解决构造器歧义   3.3.1 问题描述   3.3.2 解决方案   3.3.3 实现方法   第4章 高级Spring IoC容器   第5章 动态代理和经典的Spring AOP   第6章 Spring 2.x AOP和AspectJ支持  第二部分...

    spring.net中文手册在线版

    它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 ...

    spring.doc

    3.5.1 使用构造器注入 20 3.5.2 使用属性setting方法进行注入 21 3.5.3 装配list集合 22 3.5.4 装配set集合 22 3.5.5 装配map 22 3.5.6 装配Properties 23 3.6 注解注入 23 注解注入拓展: 23 3.6.1 @Autowired 26 ...

    Spring核心注解深入解析:提升开发效率

    Spring框架是Java开发中广泛使用的一个强大工具,它通过依赖注入和控制反转等核心概念,极大地提高了开发效率和应用的可维护性。在这份文档中,我们深入探讨了Spring的核心注解,包括但不限于@Component、@...

Global site tag (gtag.js) - Google Analytics