5、spring依赖注入的方式
方法一:使用构造器方式进行注入
1、dao的类和接口
package com.cvicse.dao.impl;
import com.cvicse.dao.PersonDao;
public class PersonDaoBean implements PersonDao {
public void add(){
System.out.println("执行PersonDaoBean中的add()方法");
}
}
package com.cvicse.service;
public interface PersonService {
public void save();
}
2、service类
import com.cvicse.dao.PersonDao;
import com.cvicse.service.PersonService;
public class PersonServiceBean implements PersonService {
private PersonDao personDao;
private String name;
public PersonServiceBean(PersonDao personDao, String name) {
this.personDao = personDao;
this.name = name;
}
public void save(){
System.out.println(name);
personDao.add();
}
}
要在构造函数进行注入,应采用如下的方式进行配置
<bean id="personDao" class="cn.itcast.dao.impl.PersonDaoBean" />
<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">
<constructor-arg index="0" type="cn.itcast.dao.PersonDao" ref="personDao"/>
<constructor-arg index="1" type=“java.lang.String” value="基本类型"/>
</bean>
方法二:使用setter方法进行注入
采用setter的方法进行注入时,基本属性和业务对象的注入有所不同,而基本类型的中的集合注入也是应该注意的。
1、service类
public class PersonServiceBean implements PersonService {
private Set<String> sets = new HashSet<String>();
private List<String> lists = new ArrayList<String>();
private Properties properties = new Properties();
private Map<String, String> maps = new HashMap<String, String>();
public Map<String, String> getMaps() {
return maps;
}
public void setMaps(Map<String, String> maps) {
this.maps = maps;
}
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public Set<String> getSets() {
return sets;
}
public void setSets(Set<String> sets) {
this.sets = sets;
}
public List<String> getLists() {
return lists;
}
public void setLists(List<String> lists) {
this.lists = lists;
}
public void save(){
}
}
2.XML中的配置(注意,各种类型都具有了)
<bean id="personDao" class="cn.itcast.dao.impl.PersonDaoBean" />
<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">
<!--业务对象的注入方式 -->
<property name="personDao" ref="personDao" />
<!--基本属性的注入方式 -->
<property name="name" value="itcast" />
<property name="id" value="88" />
<!--集合的注入方式 -->
<property name="sets">
<set>
<value>第一个</value>
<value>第二个</value>
<value>第三个</value>
</set>
</property>
<property name="lists">
<list>
<value>第一个list元素</value>
<value>第二个list元素</value>
<value>第三个list元素</value>
</list>
</property>
<property name="properties">
<props>
<prop key="key1">value1</prop>
<prop key="key2">value2</prop>
<prop key="key3">value3</prop>
</props>
</property>
<property name="maps">
<map>
<entry key="key-1" value="value-1" />
<entry key="key-2" value="value-2" />
<entry key="key-3" value="value-3" />
</map>
</property>
</bean>
另外,对于业务对象,还具有如下的内部bean配置方式,但如果这样配置了,则该bean只能由外边的bean用
<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">
<!-- 使用内部bean进行注入-->
<property name="personDao">
<bean class="cn.itcast.dao.impl.PersonDaoBean"/>
</property>
</bean>
方法三:使用Filed方式注入(即注解方式注入)
分享到:
相关推荐
在IT行业中,Spring框架是Java开发领域中一个极为...通过阅读《Spring之IOC示例》这篇博客(博文链接:https://huangminwen.iteye.com/blog/1041298),可以更深入地理解Spring的IOC机制,并学习如何在实际项目中应用。
这篇博客“java模拟spring ioc”很可能是探讨如何在没有Spring框架的情况下,使用纯Java代码来实现类似Spring的IOC功能。以下将详细介绍Spring的IOC和DI概念以及如何模拟这些概念。 **依赖注入(Dependency ...
《Spring入门:Spring概述与Spring IoC》是针对初学者的一篇教程,旨在引导开发者进入Spring框架的世界。本文将深入探讨Spring的核心概念,特别是Spring的Inversion of Control(IoC,控制反转)特性,以及如何在...
本篇文章将详细探讨如何通过反射机制来实现一个简单的Java IOC容器,以此来模仿Spring框架的行为。 首先,理解控制反转(IOC)的概念至关重要。在传统的编程模式中,对象通常自行创建依赖对象,而在IOC中,这种创建...
本资源是一篇关于学习和应用SSM框架(Spring、SpringMVC、MyBatis)的学习记录系列文章中的第六天...通过学习这篇文章,你将会对Spring框架有一个初步的了解,并能够使用Spring的IoC容器实现控制反转和简单工厂模式。
本篇将深入探讨Spring的这两个核心概念,并通过实际操作加深理解。 **一、Spring的IOC(控制反转)** IOC,即控制反转,是一种设计思想,其核心理念是将对象的创建和管理交给容器来处理,而不是由对象自身负责。在...
在本篇博文中,我们将深入探讨Spring框架的基础概念,特别是其核心特性——控制反转(Inversion of Control,IoC)容器。IoC容器是Spring框架的基石,它负责管理对象的生命周期和对象间的依赖关系。通过IoC,我们...
本篇文章将详细探讨Spring IoC的体系结构设计,以及如何实现这些设计理念。 首先,Spring的IoC容器基于BeanFactory接口,这是容器的基础规范,它定义了如何管理和创建Bean。BeanFactory提供了诸如获取Bean实例、...
在本篇Spring学习笔记中,我们将深入探讨Spring的基本概念,包括bean的配置、依赖注入、IOC容器以及Bean的实例化方式。 首先,Spring中的核心概念是bean。Bean是Spring框架中的基本构建块,它们是被管理的对象,...
### Spring.NET学习笔记-实现一个简易的IoC框架 #### 一、背景介绍与理论基础 在.NET领域中,Spring.NET框架是一个非常重要的轻量级框架,它支持依赖注入(Dependency Injection, DI)和面向切面编程(Aspect ...
### 学习笔记:尚硅谷Spring6基础篇 #### 一、Spring框架概述 ##### 1.1 Spring是什么? Spring是一款主流的Java EE轻量级开源框架,由“Spring之父”Rod Johnson提出并创立。Spring的主要目标是简化Java企业级...
2. **Spring容器**:Spring的核心是IoC容器,如BeanFactory和ApplicationContext,它们负责读取配置,实例化、配置及管理Bean。 3. **Bean定义**:如何在XML或Java配置中定义Bean,包括其类名、初始化方法、属性...
### Spring学习笔记(最新版) #### 一、Spring框架简介 Spring框架是一个广泛使用的轻量级企业级应用框架,它提供了全面的解决方案来构建复杂的Java应用程序。Spring的核心特性包括依赖注入(Dependency Injection,...
在学习Spring框架时,首先需要了解其主要模块,这些模块可以分为几个核心领域: 1. 核心容器:主要包括BeanFactory和ApplicationContext两个接口,它们是Spring框架的核心,负责实例化、配置和管理应用程序中的对象...
Spring系列第2篇:控制反转(IoC)与依赖注入(DI)。Spring系列第3篇:Spring容器基本使用及原理。Spring系列第4篇:xml中bean定义详解(-)Spring系列第5篇:创建bean实例这些方式你们都知道?Spring系列第6篇:玩转...
基于以上分析,我们可以期待这篇"spring学习笔记(3.20)"中包含以下知识点: 1. **Spring框架基础**:介绍Spring的基本概念、架构和核心组件,如IoC(Inversion of Control,控制反转)和DI(Dependency Injection,...
标题中的"Spring学习笔记之一“why spring”"表明了这篇笔记主要探讨的是Spring框架的核心价值和使用背景。在IT行业中,Spring是一个广泛使用的Java企业级应用开发框架,它以其依赖注入(Dependency Injection,DI)...
1. **Spring入门学习前导篇**: 在开始Spring的学习之前,了解Spring的基本概念和历史背景是必要的。Spring框架起源于2003年,由Rod Johnson创建,旨在解决企业应用开发中的复杂性问题。Spring通过提供IoC容器和AOP...
在本篇 Spring 学习笔记中,我们将探讨 Spring 的入门、优点、组成以及重要的IOC理论。 1. **Spring 简介** Spring 是一个开源的、免费的 Java 框架,它的目标是减少企业级开发的复杂性。它集成了许多现有的技术,...
以上就是Spring学习笔记的初步概述,涵盖了Spring的基本架构、配置文件的创建和加载,以及依赖注入的主要方式。随着学习的深入,还可以涉及AOP、Spring MVC、Spring Boot、Spring Data等更高级的主题,从而更好地...