Spring-IOC

Springsh一个轻量级的框架,不需要特殊容器的支持,不依赖于特定的JavaEE规范=。它只是将所有的组件部署到Spring中,管理维护,执行他们,因此是轻量级的容器。Spring是应用最广泛的轻量级JavaEE框架之一,它以IOC和AOP为主要思想,能g够协同众多框架一起开发。

Spring主要的思想是IoC也称为DI,IoC是对传统控制流程的一种颠覆。在传统程序开发中,相互依赖是固定在程序中的。虽然现在面向对象的思想是根深蒂固的,从本质说面向对象是面向过程的一种抽象,类中的方法执行和成员变量创建都是有先后顺序的也是在Java类中进行对象创建和初始化的。但是IoC控制反转,它将控制进行转移(获得依赖的对象的过程被反转了),应用程序程序本身不支持依赖对象的创建和维护,而是由外部容器负责创建和维护。这些对象的创建也是有Spring容器在运行阶段进行注入的,下面我介绍一个实例:

在这个小例子中主要是通过配置文件进行成员变量的创建注入,利用Java反射机制回去注入的对象,并进行方法的调用。这期中为了更好的说明问题,利用多态的思想,创建一个接口的不同实现类对象进行说明。

1.定义一个统一的接口(只有一个方法仅仅为了说明问题):

package com.entity;
public interface IHelloMessage {
 public String sayHello();
}

2.实现类:

HelloWord类:

package com.entity;

public class HelloWord implements IHelloMessage {

public String sayHello() {
// TODO Auto-generated method stub
return "HelloWord";
}

}

HelloChina类:

package com.entity;

public class HelloChina implements IHelloMessage {

public String sayHello() {
// TODO Auto-generated method stub
return "大家好!";
}
}

3.测试类:

package com.test;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import com.entity.Person;

public class SpringHelloTest {

@Test
public void testHelloSpring(){
//Resource re=new FileSystemResource("hellospring.xml");
BeanFactory bf=new XmlBeanFactory(new ClassPathResource("hellospring.xml"));
Person person =(Person)bf.getBean("person");//利用反射机制获取对象
System.out.println(person.sayhello());
}
}

4.Spring配置文件:

<?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.xsd">
<!-- 引入实体类-->
<bean id="helloword" class="com.entity.HelloWord"></bean>
<bean id="hellochina" class="com.entity.HelloChina"></bean>
<bean id="person" class="com.entity.Person">

<!-- 设置person中helloword的成员变量进行注入-->
<property name="hellomessage" ref="helloword"></property>
</bean>
</beans>

在本例中Person类中的成员变量helloword并在测试类没有进行创建和初始化,也没有依赖关系,而是把它再Spring配置文件中引入进行Spring注入,有Spring进行创建和维护;可以为helloword配置不同的实体类对象,进行多态模式的开发;总得来时Spring的Ioc编程思想是为了程序开发过程中的维护,进行对象之间的解耦,降低模块之间的耦合度可以说是设计模式中高内聚低耦合的完美体现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值