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依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...
1. **构造器注入**:通过类的构造函数传入依赖的对象实例。例如,一个类`Service`依赖`Repository`,我们可以在`Service`的构造函数中接收`Repository`的实例: ```java public class Service { private ...
在Spring框架中,依赖注入主要通过两种方式实现:构造器注入和setter注入。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成。这种方式强制了所有依赖在对象实例化时就已明确,有利于确保对象的完整性和...
你可以通过构造器注入、设值注入或接口注入三种方式实现。 2. **容器(IoC Container)**:Spring容器负责创建对象、管理对象的生命周期以及维护对象间的依赖关系。主要有两种类型的容器:BeanFactory和...
在本篇 Spring 学习笔记中,我们将探讨 Spring 的入门、优点、组成以及重要的IOC理论。 1. **Spring 简介** Spring 是一个开源的、免费的 Java 框架,它的目标是减少企业级开发的复杂性。它集成了许多现有的技术,...
此外,还可以使用`<constructor>`标签进行构造器注入,通过`index`、`type`和`ref`属性指定构造函数参数的顺序、类型和依赖对象。 在Java代码中,Spring提供了两种注解方式来实现依赖注入:`@Resource`和`@...
### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...
- **setter注入和构造器注入**:两种常见的DI方式,setter注入通过setter方法,构造器注入在对象构造时注入依赖。 - **id和name**:在XML配置中,id是bean的唯一标识,name可以有多个,用于引用或匹配。 - **属性...
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...
标题和描述均提到了“spring指南学习笔记”,这意味着文档聚焦于Spring框架的学习心得与关键概念。Spring是一个开源的Java企业级应用框架,以其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect ...
依赖注入是Spring框架的核心特性之一,它允许开发者在运行时将对象及其依赖关系解耦。通过DI,组件不再直接创建它所依赖的对象,而是由容器负责创建和管理这些对象,并将它们注入到需要的地方。这有助于提高代码的可...
3. **Bean的定义与配置**:讲解XML配置文件、注解配置以及Java配置三种方式创建Bean,包括属性注入、构造器注入等。 4. **AOP编程**:阐述AOP的基本概念,如切面、通知、连接点、切入点表达式等,以及如何实现方法...
在本篇“Spring学习笔记之二‘属性注入’”中,我们将深入探讨Spring如何实现属性注入,并通过实例展示其工作原理。 1. **属性注入的概念** 属性注入是指Spring容器通过XML配置或者基于注解的方式,将外部资源(如...
### Spring学习笔记1 #### 一、Spring框架简介与IOC概念 **Spring**是一个开源的Java平台框架,它提供了一种全面的编程模型,并通过一系列的功能模块支持企业级应用程序开发。Spring的核心特性包括依赖注入...
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...
Spring支持多种不同类型的依赖注入方式,包括构造器注入和setter注入。在选择依赖注入方式时,构造器注入有利于实现不可变对象,而setter注入提供了更多的灵活性。Spring框架的单例实现原理是使用单例注册表模式确保...
- 构造器注入:通过构造函数传递依赖对象。 - setter注入:通过setter方法设置依赖对象。 - 接口注入:较少使用,通过实现特定接口来注入依赖。 1.3 @Autowired注解 @Autowired注解用于自动装配bean,可以根据类型...
以上是 Spring 2.5.6 学习笔记中的关键知识点,通过这些基础知识的学习,开发者可以开始构建基于 Spring 框架的应用程序。接下来,可以进一步深入学习 Spring 的高级特性,如事务管理、安全性、Web 开发等方面的知识...
Spring支持多种依赖注入方式,如构造器注入、setter注入等。 - **面向切面编程(Aspect-Oriented Programming, AOP)**: AOP提供了一种将横切关注点(如事务管理、日志记录等)模块化的手段。Spring支持通过声明式...