设为首页 加入收藏

TOP

Spring IOC容器(一)
2017-10-12 18:17:21 】 浏览:7467
Tags:Spring IOC 容器

1.Spring框架简介

什么是Spring?

Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入

Spring提供的IOC和AOP应用,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级

Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发

2.容器和Bean管理

Spring容器简介

在Spring中,任何java类和javaBean都被当成Bean处理,这些Bean通过容器管理和应用

Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦

Spring容器有BeanFactory和ApplicationContext两种类型

(什么是javaBean:一种简单规范的java对象;何时使用Spring:当需要管理javaBean对象时候就可以使用,Spring是最简洁的对象管理方案之一)

Spring容器的实例化

ApplicationContext继承自BeanFactory接口,拥有更多的企业级方法,推荐使用该类型,实例化方法如下:

//加载文件系统中的配置文件实例化

String conf = “C:\applicationContext.xml”;

ApplicationContext ac = new FileSystemXmlApplicationContext(conf);

//加载工程classpath下的配置文件实例化

String conf = “applicationContext.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

Spring容器的使用

从本质上讲,BeanFactory和ApplicationContext仅仅只是一个维护Bean定义以及相互依赖关系的高级工厂接口。通过BeanFactory和ApplicationContext我们可以访问bean定义

首先在容器配置文件applicationContext.xml中添加Bean定义

<bean id = "标识符" class = "Bean类型"/>

然后在创建BeanFactory和ApplicationContext容器对象后,调用getBean()方法获取Bean的实例即可[getBean("标识符")]

Bean的实例化

Spring容器创建Bean对象的方法有以下三种:

-用构造器来实例化

<bean id = "calendarObj1"  class = "java.util.GregorianCalendar"/>

<bean id = "calendarObj2"  class = "java.util.GregorianCalendar"/>

(id或name属性用于指定Bean名称,用于从Spring中查找这个Bean对象;class用于指定Bean类型,会自动调用无参数构造器创建对象)

-使用静态工厂方法实例化

<bean id = "calendarObj2"  class = "java.util.Calendar"  factory-method = "getInstance"/>

(id属性用于指定Bean名称,class属性用于指定工厂类型,factory-method属性用于指定工厂中创建Bean对象的方法,必须用static修饰的方法)

-使用实例工厂方法实例化

<bean id = "calendarObj3"  class = "java.util.GregorianCalendar"/>

<bean id = "dateObj"  factory-bean = "calendarObj3"  factory-method = "getTime"/>

 (id用于指定Bean名称,factory-bean属性用于指定工厂Bean对象,factory-method属性用于指定工厂中创建Bean对象的方法)

(将对象创建规则告诉Spring,Spring会帮你去创建对象;基于配置和默认规则,减少了代码的书写)

 Bean的命名

Bean的名称:

在Spring容器中,每个Bean都需要有名字(即标识符),该名字可以用<bean>元素的id或name属性指定;id属性比name严格,要求具有唯一性,不允许用"/"等特殊字符

Bean的别名

为已定义好的Bean,再增加另外一个名字引用,可以使用<alias>指定

<alias  name = "fromName"  alias = "toName"/>

Bean的作用域:

Spring容器在实例化Bean时,可以创建以下作用域的Bean对象

1、singleton作用域


在每个Spring IOC容器中一个bean定义对应一个对象实例,默认项
配置实例:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
或者
<bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>

2、prototype


一个bean定义对应多个对象实例
配置实例:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/>
或者
<beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/>

3、request

request表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效
request、session、global session使用的时候,首先要在初始化web的web.xml中做如下配置:


如果你使用的是Servlet 2.4及以上的web容器,那么你仅需要在web应用的XML声明文件web.xml中增加下述ContextListener即可:
<web-app&g

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇log4j.properties 配置示例 下一篇【Struts2】工作流程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目