Spring框架

一.Spring简介

这是一款属于JavaEE架构级的优秀框架,它通过控制反转(IoC)和面向切面/方面(AOP)的编程两项技术,将其它框架、组件以及资源低耦合地整合在一起。
Spring是一个开源框架,是一个轻量级的IOC和AOP容器框架。
1.轻量级:从大小和系统开支上说Spring都算是轻量级的,整个Spring框架可以打包成几M的JAR文件,利用Spring开发不依赖任何服务器,也无需引入其API(非侵入式特性)。
2.反向控制:Spring通过使用反向控制(Ioc)来实现组件之间的松散耦合。

二.优势

1.相比较于EJB,Spring简化了企业级系统的开发。
2.基于JavaBean技术,方便地实现了软件系统各组件的松散耦合。
3.使代码更加容易测试。

三.模块

核心容器:Spring核心容器为Spring框架提供了基础功能,在这个模块中你可以找到BeanFactory这个类,它是所有基于Spring框架系统的核心

Application Context(上下文)模块:上下文模块是使Spring成为框架的原因,这个模块提供了很多企业级服务,如国际化,电子邮件服务,JNDI访问,EJB集成,远程调用以及定时服务

Spring的AOP模块:在 AOP模块中,Spring对面向切面提供了丰富的支持

JDBC和DAO模块:使数据库代码变得简单明了

O/R映射集成模块:Spring为那些喜欢使用ORM工具的开发人员提供了ORM模块

Spring的Web模块:提供适合Web系统的上下文,另外,该模块还支持多项其他面向Web的任务,如透明处理多文件上传请求

Spring MVC框架:利用Ioc将控制逻辑和业务逻辑清晰地分离开来

四.Spring 与 Struts 、 Hibernate等其它框架的区别

1.Spring可以集成其它框架,它是一个“大”框架
2.Spring是专注于企业应用的框架,它所涉及的领域非常之广泛
3.Struts只是专注于实现Web应用程序开发的MVC部分
4.Hibernate只是专注于数据持久层的部分

五.Spring是一个开源框架,是一个轻量级的Ioc和AOP容器框架。

IoC -控制反转
由对象自身创建自己的关联或者依赖对象,改变为由外部容器将关联或依赖对象注入。
DI-依赖注入
对其它对象的依赖关系由外部容器给定。
DI的注入方式有两种:setter注入和构造器注入
IoC就是通过依赖注入实现的。

Spring框架的核心是IOC容器(DI,控制反转容器),目的是提供一个高扩展性、组件化以及无侵入代码(即在程序代码中不涉及Spring框架的专有类及接口,就可以置于容器管理之下)的应用开发框架。

六.Spring容器

Spring有两种不同的容器:
Bean工厂(BeanFactory)是最简单的容器,提供了基础的依赖注入支持.
应用上下文(ApplicationContext)扩展了Bean工厂,提供了系统构架服务,功能更强大。

七.实例化Bean

1.属性:
id:指定 bean 的 id,用于从容器中获取
class:全限定类名
作用域(scope 属性):
单例(singleton):它是默认的选项,在整个应用中,Spring只为其生成一个Bean的实例。
原型(prototype):当每次注入,或者通过Spring IoC容器获取Bean时,Spring都会为它创建一个新的实例。
会话(session):在Web应用中使用,就是在会话过程中Spring只创建一个实例。
请求(request):在Web应用中使用的,就是在一次请求中Spring会创建一个实例,但是不同的请求会创建不同的实例。
2.Bean的实例化
(1) 使用类构造器实例化(无参)
xml中:

   <bean id="userInfoDAO" class="com.it.user.dao.UserInfoDAO" scope="prototype" init-method="init" destroy-method="destroy">
    </bean>

(2).使用静态工厂方法实例化(单例模式:饿汉模式)
•factory-method 属性:指定生产对象的静态方法
例如:

<bean id="clientService" class="com.it.controller.ClientService" factory-method="createInstance"></bean>

(3) 实例工厂方法实例化
•factory-bean 属性:用于指定实例工厂 bean 的 id。
•factory-method 属性:用于指定实例工厂中创建对象的方法。
例如:

<bean  id="serviceLocator" class="com.it.controller.DefaultServiceLocator"></bean>
<bean id="clientService2" factory-method="createClientServiceInstance" factory-bean="serviceLocator"></bean>
    <bean id="accountService2" factory-method="createAccountServiceInstance" factory-bean="serviceLocator" ></bean>

关于IOC和AOP请看下篇文章…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值