Spring IOC容器的基本应用

2018-06-18 02:53:24来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

Spring IOC概述


 

  IOC全称Inversion of Control,被译为控制反转,是指程序中对象的获取方式发生反转,由最初的new方式创建,转变为由第三方框架创建、注入(DI),它降低了对象之间的耦合度。

  Spring容器是IOC机制的一种实现,同时IOC也是Spring框架的基础和核心,它借助DI(Dependency Injection)方法实现。

Spring Bean容器


 

   Spring容器是Spring框架中的核心组件,负责创建Bean对象(一种简单规范的JAVA对象)及管理这些对象之间的依赖关系。

  Spring容器是如何工作的呢?在Spring项目运行是,Spring容器负责读取项目中的元数据信息(这些元数据可能是基于xml、也可能是基于注解实现),然后这些信息创建Bean对象的实例。

  IOC是Spring框架中的一种机制,提供了容器中对象的控制反转功能,这个功能的实现需要借助依赖查找和依赖注入。

 

?Spring容器元数据配置

 

   Spring中元数据的配置有两种方式,基于xml或annotation方式。这个小节了解基于XML方式的元数据实现bean元素的基本配置(后续在描述annotation方式)。

  

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5       http://www.springframework.org/schema/beans/spring-beans.xsd">
 6 
 7     <bean id="..." class="...">
 8         <!-- collaborators and configuration for this bean go here -->
 9     </bean>
10 
11     <bean id="..." class="...">
12         <!-- collaborators and configuration for this bean go here -->
13     </bean>
14 
15     <!-- more bean definitions go here -->
16 
17 </beans>

 

  Spring中多个元素配置文件的实现方法

1 <beans>
2     <import resource="services.xml"/>
3     <import resource="resources/messageSource.xml"/>
4     <import resource="/resources/themeSource.xml"/>
5 
6     <bean id="bean1" class="..."/>
7     <bean id="bean2" class="..."/>
8 </beans>

?Spring容器的初始化

  Spring中容器的类型为Application类型,其初始化方法如下:

1 ApplicationContext context =
2 new ClassPathXmlApplicationContext("beans.xml");

  Spring容器初始化是需要加载元数据的配置信息,类如beans.xml文件中声明的元数据的相关配置。

?Spring 容器的使用

  Spring容器初始化以后,可以通过容器的getBean(...)方法获取容器的Bean对象,进而操作Bean对象,例如:

 

1 Contex.getBean(“xxxService”,XxxService.class);

 

 

 

 

 

 2018-03-10 

文笔有限,才疏学浅,文中若有不正之处,万望告知。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:事务原理与开发

下一篇:验证Future.get阻塞性,阻塞的是什么