spring依赖注入(Ioc)控制反转
来源:互联网 发布:淘宝跑路双十一 编辑:程序博客网 时间:2024/04/20 04:48
控制反转(英语:Inversion of control,缩写为IoC),也叫做依赖注入(Dependency Injection,简称DI),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。
在面向对象开发过程中,类与类的关系可能非常复杂。而类与类之间的关系或依赖,导致系统的紧密耦合。
而依赖注入是解决对象间的紧密耦合,将原来在类内部控制的依赖交给系统去控制。
下面是基于注解的注入案例
配置文件spring.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:component-scan base-package="spring.test"/></beans>
主业务类PersonService.java
package spring.test;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.annotation.Resource;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Service;/** * @function : * @author :jy * @company :万里网 * @date :2011-10-12 */@Service("person")@Scope("prototype")public class PersonService {private InfoDao info;private String username;private int age;@Resource(name="baseInfo") public void setInfo(InfoDao info){this.info = info;}public PersonService(){}@PostConstructpublic void init(){System.out.println("初始化完成");}@PreDestroypublic void destory(){System.out.println("注销完成");}public PersonService(String username, int age){this.username = username;this.age = age;}@Overridepublic String toString() {return "Person [username=" + username + ", age=" + age + "]";}public void printInfo(){System.out.println(info);}}
数据访问组件InfoDao.java
package spring.test;import org.springframework.stereotype.Repository;/** * @function : * @author :jy * @company :万里网 * @date :2011-10-12 */@Repository("baseInfo")public class InfoDao {/* (non-Javadoc) * @see java.lang.Object#toString() */@Overridepublic String toString() {return "User BaseInfo";}}
JUnit测试文件
package spring.test;import org.junit.BeforeClass;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * @function : * @author :jy * @company :万里网 * @date :2011-10-12 */public class TestSpring {/** * @throws java.lang.Exception */@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@Test public void instanceBean(){ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");PersonService person = (PersonService) ctx.getBean("person");person.printInfo();}}
- spring依赖注入(Ioc)控制反转
- Spring依赖注入及IOC控制反转
- Spring 控制反转IOC,依赖注入DI
- 1 spring--IOC(控制反转,依赖注入)
- Spring---IOC(控制反转+依赖注入)
- Spring Ioc(控制反转/依赖注入)
- 依赖注入 控制反转Ioc
- Spring -- 控制反转IoC/依赖注入DI的实现
- spring反转控制IOC或依赖注入之简单示例
- Spring 控制反转(IoC)容器与依赖注入(DI)
- Spring之IOC(控制反转)\DI依赖注入
- Spring之IoC 控制反转和依赖注入
- spring的IoC(控制反转)和DI(依赖注入)
- Spring控制反转与依赖注入(IOC && DI)
- Spring的控制反转(IoC)和依赖注入(DI)
- Helloworld之Spring依赖注入/控制反转(DI/IoC)版
- Spring入门--控制反转(IOC)与依赖注入(DI)
- Spring的核心机制:依赖注入,也是IoC(控制反转)
- 关于数组的操作
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- HDU 2028最小公倍数LCM 最大公约数GCD
- 基于自由Linux十一国庆后的第一天提升
- Android的selector,背景选择器
- spring依赖注入(Ioc)控制反转
- Shell调试技术总结(一)
- CString转换为int
- JSON与JAVA数据的转换
- jQuery UI全教程之一(dialog的使用教程)
- 《OpenGL编程基础》第二章习题1
- 基于自由Linux十一国庆后的第二天提升
- mysql数据库远程访问设置方法--mysql授权
- Enterprise Architect 8之数据建模(创建外键)