基于Web的Spring论文_黄继红,刘正余

基于Web的Spring论文_黄继红,刘正余

(皖西学院 电子与信息工程学院 六安 237012)

摘要:Spring IOC通过“控制反转”方法,实现组件的创建和管理,并通过“依赖注入”实现组件的配置和组件之间的关系。本文通过对Spring IOC框架的阐述,主要分析了其主要接口和实现类、配置文件的配置及IOC的工作原理。

关键词:IOC;依赖注入

1引言

IOC(Inversion of Control),即“控制反转”,是程序设计的一种设计思想,是Spring框架中的核心技术。在Java开发中,IOC将设计的对象交给IOC容器控制管理,而不是传统的由对象内部直接控制。

IOC使程序中组件或类之间形成松耦合的结构。IOC将创建实例的任务交给IOC容器,这样开发时只需要直接使用类的实例,这就是IOC控制反转。通常用一个所谓的好莱坞原则(“Don't call me.I will call you.”请不要给我打电话,我会打给你。)来比喻这种控制反转的关系。

2IOC配置文件

IOC配置文件默认为applicationContext.xml,主要配置JavaBean的实例和关系,可以是其他文件名称,一般用此名称。IOC配置文件位置,在开发时一般在src下。

配置一个 bean:

<bean id="user" class="com.hjh.bean.User">

<property name="name" value="Marry"></property>

</bean>

Id是Bean 的名称,在 IOC 容器中必须是唯一的,若 id 没有指定,Spring 自动将权限定性类名作为 Bean 的名字。id 可以指定多个名字,名字之间可用逗号、分号、或空格分隔。

3IOC管理JavaBean的接口和类

3.1BeanFactory接口

BeanFactory接口实现类XMLBeanFactory。BeanFactory实现了IOC控制,被称为“IOC容器”,实现JavaBean的创建、配置和管理。如代码:

Resource resource = new ClassPathResource("applicationContext.xml"):

BeanFactory factory = new XmlBeanFactory(resource):

User user =(User)factory.getBean("user"):

user为IOC配置文件中配置的bean。

3.2AplicationContext接口

AplicationContext接口继承BeanFactory接口,但比BeanFactory接口功能更强大,实现类主要有:ClassPathXmlAplicationContext,FileSystemXmlAplicationContext,WebApplicationContext类。

期刊文章分类查询,尽在期刊图书馆

其中,ClassPathXmlAplicationContext类最常用,如代码:

ApplicationContextctx=new ClassPathXmlAplicationContext("applicationContext.xml"):

User user =(User)ctx.getBean("user"):。

4IOC 容器中 Bean 的生命周期

Spring IOC 容器可以管理 Bean 的生命周期,Spring 允许在 Bean 生命周期的特定点执行定制的任务。Spring IOC 容器对 Bean的生命周期进行管理的过程:

1)通过构造器或工厂方法创建 Bean 实例;

2)设置 Bean 的属性和对其他 Bean 的引用;

3)调用 Bean 的初始化方法;

4)使用Bean;

5)当容器关闭时,销毁Bean。

5依赖注入

5.1Setter注入

一个简单的JavaBean最明显的规则就是一个私有属性对应Setter和Getter方法,来实现对属性的封装。既然JavaBean有Setter方法来设置Bean的属性,Spring就会有相应的支持。配置文件中的<property>元素可以为JavaBean的Setter方法传参,即通过Setter方法为属性赋值。

5.2构造器注入

在类被实例化的时候,它的构造方法被调用并且只能调用一次。所以构造器被常用于类的初始化操作。<constructor-arg>是<bean>元素的子元素。通过<constructor-arg>元素的<value>子元素可以为构造方法传参,也可以是<constructor-arg, value="">。

1)按索引匹配入参

<bean id="car" class="com.hjh.bean.User">

<constructor-arg value="Marry" index="0"></constructor-arg>

<constructor-arg value="10" index="1"></constructor-arg>

</bean>

2)按类型匹配入参

<bean id="car" class="com.hjh.bean.User">

<constructor-arg value="Marry" type="java.long.String"></constructor-arg>

<constructor-arg value="10" type="int"></constructor-arg>

</bean>

6结束语

Spring IOC使组件之间的依赖关系由容器控制管理,即由Spring IOC容器动态的将某种依赖关系注入到组件之中。依赖注入的目标是为了提升组件的重用率,为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,只需要通过简单的配置,无需任何代码的写入,就可以为目标指定需要的资源,完成自身的业务逻辑,而不需要关心具体的资源的出处、由谁实现。

参考文献:

[1]郝佳.Spring源码深度析[M].人民邮电出版社.2013.9

[2] 明日科技.Java WEB从入门到精通[M].清华大学出版社.2012.9

基金项目:

安徽省高校优秀青年人才基金项目(2011SQRL151)

安徽省六安市委托产学研项目(2013LWA005)

作者简介:

黄继红(1977-),男,安徽六安人,硕士,讲师,主要研究方向:软件工程

论文作者:黄继红,刘正余

论文发表刊物:《电力设备》2017年第35期

论文发表时间:2018/4/27

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于Web的Spring论文_黄继红,刘正余
下载Doc文档

猜你喜欢