1、spring依赖注入定义(IOC)
依赖注入也叫控制反转,它是指运行过程中,如果需要调用另外一个对象协助时,无需在代码中创建被调用者(实例对象),而是依赖于外部的注入;
依赖注入分两种类型:设置注入,构造注入。
2、依赖注入事例——设置注入
Human接口
package com.centit.service;
public interface Human {
public void eat();
public void ask();
}
Lanuage接口
package com.centit.service;
public interface Language {
public String kind();
}
Chinese对Human的实现类,
package com.centit.serviceImpl;
import com.centit.service.Human;
import com.centit.service.Language;
public class Chinese implements Human {
private Language language;
@Override
public void ask() {
// TODO Auto-generated method stub
System.out.println("我是中国人,说普通话");
System.out.println(language.kind());
}
public Chinese() {
}
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("我是中国人,只吃中国菜");
}
public Language getLanguage() {
return language;
}
//设置注入(依赖注入)
public void setLanguage(Language language) {
this.language = language;
}
}
LanguageImpl是Language实现类
package com.centit.serviceImpl;
import com.centit.service.Language;
public class LanguageImpl implements Language {
@Override
public String kind() {
// TODO Auto-generated method stub
return "中国人也说英文";
}
}
applicationContext.xml配置文件
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="chinese" class="com.centit.serviceImpl.Chinese">
<property name="language" ref="language"></property>
</bean>
<bean id="american" class="com.centit.serviceImpl.American"></bean>
<bean id="language" class="com.centit.serviceImpl.LanguageImpl"></bean>
</beans>
Test测试类
package com.centit.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.centit.SessionFactory.SessionFactory;
import com.centit.service.Human;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");
Human human=(Human)ctx.getBean("chinese");
human.ask();
human.eat();
human=(Human)ctx.getBean("american");
human.ask();
human.eat();
}
}
这就是设置注入的事例,
3、依赖注入——构造注入
构造注入和依赖注入的区别就在Chinese实现中,增加一个含参数的构造函数
public void ask() {
// TODO Auto-generated method stub
System.out.println("我是中国人,说普通话");
System.out.println(language.kind());
}
public Chinese() {
}
public Chinese(Language language) {
super();
this.language = language;
}
同时applicationContext.xml配置文件有点小区别
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="chinese" class="com.centit.serviceImpl.Chinese">
<constructor-arg ref="language"></constructor-arg>
</bean>
<bean id="american" class="com.centit.serviceImpl.American"></bean>
<bean id="language" class="com.centit.serviceImpl.LanguageImpl"></bean>
</beans>
分享到:
相关推荐
Spring Ioc 注解 依赖注入
【SSH进阶之路】一步步重构容器实现Spring的IoC——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring的IoC——工厂+反射+配置文件实现IoC容器(十)
对spring依赖注入原理进行了详细说明和解析,过程详实,思路清晰,便于新手理解和学习spring依赖注入的核心要义。
spring dom4j 解析 依赖DI注入 ioc 反转 反射原理 反射技术
基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)...
主要介绍了Spring.Net IOC依赖注入原理流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要为大家详细解析了Spring中IoC优点与缺点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
IOC与DI的理解及使用 控制反转IOC(Inversion of Control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法 。... 在Spring中实现控制反转的是IOC容器 ,其 实现方法是依赖注入 (Dependency Injection,DI)
主要介绍了SPRING IOC注入方式过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
spring IOC容器依赖注入XML配置详解 运行环境:eclipse 构建工具:maven 不提供maven构建,maven用来解决jar包的依赖
IoC 依赖注入 技术总结 IoC 依赖注入 技术总结
模拟Spring IOC 自己实现依赖注入 自己的Spring 自己的代码模拟spring的依赖注入 自己写的 绝对独一无二
SpringIOC_泛型依赖注入,泛型依赖注入,注入一个组件的时候,他的泛型也是参考标准
这是在网上下载的例子,平时我们用的ioc都是在web中,本例实现在java application中实现依赖注入
详细讲解了springioc的各种注入方式以及对应的java方式。讲解了springioc和DI的区别,以及注入特殊复杂的属性
Spring ioc Spring ioc
NULL 博文链接:https://samter.iteye.com/blog/408519
综合运用Java反射、泛型和注解实现的类似Spring的核心注入
Spring 三种依赖注入方式.doc Spring 三种依赖注入方式.doc
Spring中的依赖注入就是上面说的外部,实例不在由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该... 我们不用关心Car的变化,实例之间的依赖关系由IOC容器负责了,等待Spring依赖注入。