搞清楚3个问题:1 什么是ioc?2 ioc的优点?3 spring ioc在工程中的具体实现?
1什么是ioc
ioc,控制翻转的意思,说白了就是在代码里不用想以前那样去new一个对象了,而是把控制权交给第三方的ioc容器去帮我们创建对象。
2ioc的优点
ioc的优点就是降低了代码的耦合度。
3spring ioc在工程中的具体实现
spring ioc是spring的核心和基础,spring ioc容器实际上就是BeanFactory,所以它应该具备BeanFactory的基本特征,BeanFactory一共有5个基本方法,了解下就可以了,比如,getbean(String beanname),通过bean的名称获取bean的实例.Spring将bean注入到ioc容器是通过xml配置文件去配置的,注入主要通过两种方式:set注入和构造器注入.还可以注入List,map等集合对象。注入是动态注入的,所以注入的过程是DI依赖注入的过程,主要是通过java的反射机制去实现的。注入bean到Spring的配置文件后,通过ClassPathXmlApplicationContext去获取ApplicationContext资源文件,也就获取是一个ioc的实例。再通过ioc的实例去获取具体的bean.
java代码:
先创建具体的bean.
package com.hjy.beans;
public interface Rest {
public void eat();
public void sleep();
}
package com.hjy.beans;
public class Arest implements Rest {
private Rest a;
private String name;
private String age;
public void eat() {
// TODO Auto-generated method stub
System.out.println("A每天吃3两");
}
public void sleep() {
// TODO Auto-generated method stub
System.out.println("A每天睡8个小时");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Rest getA() {
return a;
}
public void setA(Rest a) {
this.a = a;
}
}
package com.hjy.beans;
public class Brest implements Rest {
private Rest b;
private String name;
private String age;
public void eat() {
// TODO Auto-generated method stub
System.out.println("B每天吃4两");
}
public void sleep() {
// TODO Auto-generated method stub
System.out.println("B每天睡6小时");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Rest getB() {
return b;
}
public void setB(Rest b) {
this.b = b;
}
}
通过spring的xml配置文件,将bean注入到spring ioc容器中.这里只实现了最常用的set注入方式,还有构造器注入方式以及list,map等集合类的注入并没有给出。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="Arest" class="com.hjy.beans.Arest">
<property name="name" value="张三"></property>
<property name="age" value="20"></property>
</bean>
<bean id="Brest" class="com.hjy.beans.Brest">
<property name="name" value="李四"></property>
<property name="age" value="25"></property>
</bean>
</beans>
在具体的资源文件里获取具体的bean.
package com.hjy.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hjy.beans.Arest;
import com.hjy.beans.Brest;
import com.hjy.beans.Rest;
public class Testioc {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
Arest arest=(Arest)ac.getBean("Arest");
System.out.println(arest.getName());
arest.eat();
Brest brest=(Brest)ac.getBean("Brest");
System.out.println(brest.getName());
brest.eat();
}
}
张三
A每天吃3两
李四
B每天吃4两
分享到:
相关推荐
spring ioc容器初始化流程图 spring ioc容器依赖注入流程图 spring aop实现原理流程图
springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...
spring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demo...
spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合
SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码
spring Ioc容器配置 IOC容器数据源配置 <!-- 配置数据源 --> destroy-method="close"> <value>org.gjt.mm.mysql.Driver <value>jdbc:mysql://localhost:3306/demo <value>root ...
spring ioc思维导图,让自己快速、详尽地了解spring ioc知识。
Spring ioc Spring ioc
以注解方式模拟Spring IoC AOP,了解Spring是如何实现的.
主要为大家详细解析了Spring中IoC优点与缺点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
详细讲解了springioc的各种注入方式以及对应的java方式。讲解了springioc和DI的区别,以及注入特殊复杂的属性
Spring IoC加载流程讲解以及IoC思想和依赖倒置原则
SpringIOC经典Demo,绝对的经典.
Spring Ioc 注解 依赖注入
这是个模拟spring ioc的学习例子,是个java工程。有助于对aop和ioc的理解
浅谈 Spring 原理 透析,ioc aop
spring的ioc容器详细讲解,理解springioc容器
springioc加载流程图.pdf
这是spring_ioc部分的内容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
Spring IOC基础jar包