`

spring的注入依赖之构造器注入- 学习笔记

阅读更多

 

 

Spring的注入依赖(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开始

type="java.lang.String"可以不写

 

 

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学习笔记(6)----编码剖析Spring依赖注入的原理

    本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...

    Spring学习笔记(5)----依赖注入的简单实现

    1. **构造器注入**:通过类的构造函数传入依赖的对象实例。例如,一个类`Service`依赖`Repository`,我们可以在`Service`的构造函数中接收`Repository`的实例: ```java public class Service { private ...

    Spring 学习笔记《依赖注入》源文件

    在Spring框架中,依赖注入主要通过两种方式实现:构造器注入和setter注入。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成。这种方式强制了所有依赖在对象实例化时就已明确,有利于确保对象的完整性和...

    Spring学习笔记+学习源码.zip

    你可以通过构造器注入、设值注入或接口注入三种方式实现。 2. **容器(IoC Container)**:Spring容器负责创建对象、管理对象的生命周期以及维护对象间的依赖关系。主要有两种类型的容器:BeanFactory和...

    Spring学习笔记-cqupt

    在本篇 Spring 学习笔记中,我们将探讨 Spring 的入门、优点、组成以及重要的IOC理论。 1. **Spring 简介** Spring 是一个开源的、免费的 Java 框架,它的目标是减少企业级开发的复杂性。它集成了许多现有的技术,...

    Spring - 学习笔记

    此外,还可以使用`&lt;constructor&gt;`标签进行构造器注入,通过`index`、`type`和`ref`属性指定构造函数参数的顺序、类型和依赖对象。 在Java代码中,Spring提供了两种注解方式来实现依赖注入:`@Resource`和`@...

    Spring学习笔记(精华全记录)

    ### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...

    Spring的学习笔记

    - **setter注入和构造器注入**:两种常见的DI方式,setter注入通过setter方法,构造器注入在对象构造时注入依赖。 - **id和name**:在XML配置中,id是bean的唯一标识,name可以有多个,用于引用或匹配。 - **属性...

    Spring学习笔记.doc

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...

    spring指南学习笔记

    标题和描述均提到了“spring指南学习笔记”,这意味着文档聚焦于Spring框架的学习心得与关键概念。Spring是一个开源的Java企业级应用框架,以其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect ...

    Spring学习笔记.zip

    依赖注入是Spring框架的核心特性之一,它允许开发者在运行时将对象及其依赖关系解耦。通过DI,组件不再直接创建它所依赖的对象,而是由容器负责创建和管理这些对象,并将它们注入到需要的地方。这有助于提高代码的可...

    Spring学习笔记&源码

    3. **Bean的定义与配置**:讲解XML配置文件、注解配置以及Java配置三种方式创建Bean,包括属性注入、构造器注入等。 4. **AOP编程**:阐述AOP的基本概念,如切面、通知、连接点、切入点表达式等,以及如何实现方法...

    Spring学习笔记之二“属性注入”

    在本篇“Spring学习笔记之二‘属性注入’”中,我们将深入探讨Spring如何实现属性注入,并通过实例展示其工作原理。 1. **属性注入的概念** 属性注入是指Spring容器通过XML配置或者基于注解的方式,将外部资源(如...

    spring学习笔记1

    ### Spring学习笔记1 #### 一、Spring框架简介与IOC概念 **Spring**是一个开源的Java平台框架,它提供了一种全面的编程模型,并通过一系列的功能模块支持企业级应用程序开发。Spring的核心特性包括依赖注入...

    spring学习笔记

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...

    Spring&Mybatis&SpringMVC总结笔记-最全最基础.pdf

    Spring支持多种不同类型的依赖注入方式,包括构造器注入和setter注入。在选择依赖注入方式时,构造器注入有利于实现不可变对象,而setter注入提供了更多的灵活性。Spring框架的单例实现原理是使用单例注册表模式确保...

    Spring 学习笔记四

    - 构造器注入:通过构造函数传递依赖对象。 - setter注入:通过setter方法设置依赖对象。 - 接口注入:较少使用,通过实现特定接口来注入依赖。 1.3 @Autowired注解 @Autowired注解用于自动装配bean,可以根据类型...

    Spring2.5.6学习笔记-最新

    以上是 Spring 2.5.6 学习笔记中的关键知识点,通过这些基础知识的学习,开发者可以开始构建基于 Spring 框架的应用程序。接下来,可以进一步深入学习 Spring 的高级特性,如事务管理、安全性、Web 开发等方面的知识...

    spring学习笔记(最新版)

    Spring支持多种依赖注入方式,如构造器注入、setter注入等。 - **面向切面编程(Aspect-Oriented Programming, AOP)**: AOP提供了一种将横切关注点(如事务管理、日志记录等)模块化的手段。Spring支持通过声明式...

Global site tag (gtag.js) - Google Analytics