Spring学习之依赖注入
来源:互联网 发布:手机号码生成软件 编辑:程序博客网 时间:2024/06/04 19:42
Spring最主要的思想是IoC(Inversion of Control,控制反转、反向控制),或者称为DI(Dependency Injection,依赖注入).IoC是对传统控制流程的一种颠覆。
在我平时写的程序中,各个类都是相互依赖的,比如在A中我需要用B类的方法,我就会在A类中new一个B类,这样看起来合情合理,但是耦合度较高,后期维护相当的困难,导致我每次做完一个项目或系统,都不忍心去维护他,惨不忍睹!但是学习了Spring的依赖注入概念之后,发现这种方法非常的方便,后期维护也较为容易(之前没有花时间去学习,一直到现在才有所了解,非常的惭愧)好了,现在以一个小例子讲解以下什么是依赖注入!!!
程序的结果是“XXX,早上好!”
依赖注入依靠的是接口编程(我写的面向接口编程,通俗易懂(欢迎批评))现在发现接口编程是多么的重要!
首先先导入Spring的包,缺少了包后来运行的时候会提示,到时候你也可以根据提示继续添加,我导入的是这些包
开始,我们先写一个IDao(InterfaceDao)
public interface IDao {public String sayHellw(String name);}然后实现这个接口(DaoImplements)
public class DaoImpl implements IDao {
@Override
public String sayHellw(String name) {
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if(hour<6) return "凌晨早,"+name;
if(hour<12) return "早上好,"+name;
if(hour<13) return "中午好,"+name;
if(hour<18) return "下午好,"+name;
return "晚上好,"+name;
}
}
实现接口的方法,并判断当前的时间,然后返回时间加姓名。
接下来编写ISerice
public interface IService {public void service(String name);}实现他ServiceImpl
public class ServiceImpl implements IService {private IDao dao;public IDao getDao() {return dao;}public void setDao(IDao dao) {this.dao = dao;}@Overridepublic void service(String name) {System.out.println(dao.sayHellw(name));}}注意里面声明了IDao还有下面的serDao()方法,你可以想象一下,就像一个人的内部突然装了一个接口,等待外部往里面填东西
到此,所有的代码编写完毕,我们可以看到,所有的代码里没有一个new,那么这些程序怎么实现呢?人体内的接口知道要填充的东西吗?这里需要配置文件applicationContext.xml,不要害怕,就相当于一个菜单,拿药的单子
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="daoImpl" class="com.example.DaoImpl" /><bean id="service" class="com.example.ServiceImpl"><property name="dao" ref="daoImpl"></property></bean></beans>有了这个东西,程序就会知道怎么做了,医生也会知道用什么药来填充你!!!
测试代码:
public class test {public static void main(String[] args) {ApplicationContext acp = new FileSystemXmlApplicationContext("src/applicationContext.xml");ServiceImpl service = (ServiceImpl) acp.getBean("service");service.service("王小芳");}}结果为:
早上好,王小芳
看图:
注意对应关系!
本篇是对依赖注入的初步认识,没有太深入讲解(本人还在学习中。。。)
- Spring学习之依赖注入
- spring学习之注入依赖
- Spring学习之依赖注入
- spring学习之---依赖注入
- Spring 学习之 DI 依赖注入
- Spring框架学习之依赖注入
- Spring学习(二)之依赖注入优点
- Spring学习(三)之依赖注入实现
- Spring 学习-------依赖注入
- spring之依赖注入
- Spring之依赖注入
- spring 之依赖注入
- Spring依赖注入原理学习
- 学习spring依赖注入--备忘
- Spring依赖注入原理学习
- Spring MVC学习--依赖注入
- Spring 学习笔记 ----依赖注入
- spring 依赖注入的学习
- Linux与Windows线程机制简单比较
- 给Eclipse提速的7个技巧
- 从头认识C—struct对齐
- 利用jquery把一个表单的数据同时提交给两个页面
- CF#280 (Div. 2) A.(找规律)
- Spring学习之依赖注入
- 前端开发 - Emmet使用手册
- BAT脚本求文件夹下面指定类型文件数量,包含子文件夹递归
- SDL 在指定窗口中绘图
- Windows 7 系统更新失败-WindowsUpdate_800B0100
- cookie 和session 的区别详解
- Android学习记录(一)
- 离散对数加密算法
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解