Spring_002 依赖注入方式实现
继续写我们的第一个Spring程序,这次我们使用依赖注入的方式实现程序
第一步,建立我们的Spring_002程序,并在程序中添加BookDao.java、BookDaoImpl.java、BookService.java、BookServiceImpl.java、
ApplicationContext.xml

第二步 在BookDao接口中配置一个addBook方法
package com.zk.myspring;
public interface BookDao {
public void addBook();
}
在BookDaoImpl中实现addBook方法
package com.zk.myspring;
public class BookDaoImpl implements BookDao{
@Override
public void addBook() {
// TODO Auto-generated method stub
System.out.println("addBook");
}
}
在BookService接口中配置addBook方法
package com.zk.myspring;
public interface BookService {
public abstract void addBook();
}
在BookServiceImpl方法中实现addBook方法
package com.zk.myspring;
public class BookServiceImpl implements BookService{
//方式一:接口等于实现类
//private BookDao bookDao=new BookDaoImpl();
//方式二:接口+set方法
private BookDao bookdao;
public void setBookdao(BookDao bookdao) {//依赖注入
this.bookdao = bookdao;
}
@Override
public void addBook() {
// TODO Auto-generated method stub
//this.bookdao.addBook();
System.out.println("add book");
}
}
注意在BookServiceImpl文件中,我们使用接口+set方法实现,并在setBookdao方法中实现依赖注入,使得BookService依赖于BookDao
第三步 配置我们的ApplicationContext.xml,使用property属性将BookDao注入进BookService
<property name="bookdao" ref="bookDaoId"></property>
<property> 用于属性注入
name:bean的属性名,通过setter方法获得
ref:另一个bean的id值的引用
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<!-- 创建Dao -->
<!-- 模拟spring执行过程
创建Service实例:BookService bookservice=new BookServiceImpl(); IOC <bean>
创建Dao实例:BookDao bookDao=new BookDaoImpl(); IOC
将dao设置给service:bookservice.setBookDao(bookDao); DI <property> <property> 用于属性注入
name:bean的属性名,通过setter方法获得
ref:另一个bean的id值的引用
-->
<!--创建Dao -->
<bean id="bookDaoId" class="com.zk.myspring.BookDaoImpl"></bean>
<!-- 创建service -->
<bean id="bookServiceId" class="com.zk.myspring.BookServiceImpl">
<property name="bookdao" ref="bookDaoId"></property>
</bean>
</beans>
第四步 创建一个test方法,对配置文件进行测试
package com.zk.myspring; import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource; public class TestBook {
public static void main(String[]args)
{
//从spring容器中获得
String path="ApplicationContext.xml";
ApplicationContext ac=new ClassPathXmlApplicationContext(path);
BookService bs=(BookService) ac.getBean("bookServiceId");
bs.addBook();
}
@Test
public void test1(){
//使用BeanFactory实例化
String path="ApplicationContext.xml";
BeanFactory bf=new XmlBeanFactory(new ClassPathResource(path));
BookService bs=(BookService) bf.getBean("bookServiceId");
bs.addBook();
}
}
得出输出

依赖注入方式配置spring成功
Spring_002 依赖注入方式实现的更多相关文章
- 控制反转IOC的依赖注入方式
引言: 项目中遇到关于IOC的一些内容,因为和正常的逻辑代码比较起来,IOC有点反常.因此本文记录IOC的一些基础知识,并附有相应的简单实例,而在实际项目中再复杂的应用也只是在基本应用的基础上扩展而来 ...
- 一步一步深入spring(3)--spring的依赖注入方式
对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程,sprin ...
- 深入浅出spring IOC中三种依赖注入方式
深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和 ...
- 转:深入浅出spring IOC中四种依赖注入方式
转:https://blog.csdn.net/u010800201/article/details/72674420 深入浅出spring IOC中四种依赖注入方式 PS:前三种是我转载的,第四种是 ...
- spring四种依赖注入方式(转)
spring四种依赖注入方式!! 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提 ...
- ASP.NET Core应用的7种依赖注入方式
ASP.NET Core框架中的很多核心对象都是通过依赖注入方式提供的,如用来对应用进行初始化的Startup对象.中间件对象,以及ASP.NET Core MVC应用中的Controller对象和V ...
- 给力啊!这篇Spring Bean的依赖注入方式笔记总结真的到位,没见过写的这么细的
1. Bean的依赖注入概念 依赖注入(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现.在编写程序时,通过控制反转,把对象的创建交给了 Spring,但是 ...
- Spring 依赖注入方式详解
平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...
- spring六种种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
随机推荐
- 小匠第二周期打卡笔记-Task04
一.机器翻译及相关技术 机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经网络翻译(NMT). 主要特征:输出是单词序列而不是单个单词.输出序列的长度可能与 ...
- python之路之面向对象3
一.知识点拾遗 1.多继承的易错点 二.设计模式 1.设计模式介绍 Gof设计模式 大话设计模式 2.单例模式 当所有实例中封装的数据相同时,使用单例模式 静态方法+静态字段 单例就是只有一个实例 a ...
- Mybaits(11)延迟加载
一.概述 1.概念 就是在需要用到数据时才去进行加载,不需要用的数据就不加载数据.延迟加载也称为懒加载. 2.优缺点 优点:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要 ...
- koa2第一天 安装koa2
安装全局koa2:npm install -g koa2 -generator 创建一个koa2文件夹:koa2 -e koa2 进入koa2文件夹:cd koa2 安装npm模块:npm insta ...
- selenium的元素定位方法-By
如果在定位元素属性中包含了如ID等元素属性,那么在一个测试中,定位方法具体有哪几种,可以参考by模块中的By类,By的代码如下: class By(object): """ ...
- AC3 bit allocation
1.bit allocation overview bit allocation通过分析audio 信号的频谱envelop,使用masking effect来确定使用多少bit来表示频率系数的man ...
- HTML学习(16)颜色
HTML 颜色由红色.绿色.蓝色混合而成. 颜色值 HTML 颜色由一个十六进制符号来定义,这个符号由红色.绿色和蓝色的值组成(RGB). 每种颜色的最小值是0(十六进制:#00).最大值是255(十 ...
- 使用maven 打包springboot项目步骤以及所遇到的问题
1.首先必须确保java和maven是安装好的,并且环境变量配置正确 2.接着可以看一下我们项目中的pom.xml中的以下配置 packaging那里很关键,表示我们打包项目的类型,可以为jar 也可 ...
- c#中的栈(stack)与队列(queue)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- IDEA 运行项目、模块的多个实例
IDEA默认只能运行同一项目|模块的一个实例. 运行多个实例: 比如springcloud的端口设置: --server.port=9001 . 当然,也可以在项目的配置文件中修改参数. 命令行.ID ...