论坛首页 入门技术论坛

Spring核心技术----IoC

浏览 2083 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-06-13  

   Spring的核心概念是IoC,IoC的抽象概念是“依赖关系的转移”

   程序不依赖于实现,而是程序与实现都依赖于抽象。

   将控制权由实现的一方转移至抽象的一方, 藉由让抽象方拥有控制权,可获得组件的可重用性。

   Spring所采用的是依赖注入来实现IoC.

 

    依赖注入的意义是:

          保留抽象接口,让组件依赖于抽象接口,当组件要与其他实际的对象发生依赖关系时,

       藉由抽象接口来注入依赖的实际对象。

 

 

Spring的IoC容器的最大特点是实现了反转控制,也就是说在开发过程中,开发人员不需要关心容器是怎样的,也不需要调用容器的任何API,容器会自动进行被管理对象的初始化以及对象之间依赖关系的维护。

    对于IoC容器的理解,最关键的是编程思想的转变。

   Spring的IoC容器就是一个通用的Bean工厂,它可以通过各种方式获得Bean对象以

  及进行Bean对象的管理。

    IoC容器可以管理任何的Java对象

   第一个Spring程序:

=============

  HelloBean.java

-------------------------------------------------------------------------------------------

   public class HelloBean {
           public String helloWord;

           public String getHelloWord() {
                   return helloWord;
            }

             public void setHelloWord(String helloWord) {
                   this.helloWord = helloWord;
             }
   }

==============

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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

 

<!--定义了一个Bean-->
 <bean id="helloBean" class="only.HelloBean">
 <property name="helloWord">
 <value>Hello!Justin!</value>
 </property>
 </bean>

</beans>

===============

SpringDemo.java

----------------------------------------------------------------------------------------------

package only;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;

public class SpringDemo {
        public static void main(String[] args) {
              Resource rs=
                        new FileSystemResource("src/applicationContext.xml"); //可指定绝对或相对路径来指定Bean
 定义文件的位置。
              BeanFactory factory=new XmlBeanFactory(rs);  //创建Bean工厂

 

              HelloBean hello=(HelloBean)factory.getBean("helloBean");  //创建对象

              

              

System.out.println(hello.getHelloWord());  //应用Bean对象

}
}

运行输出:

  • 大小: 25 KB
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics