第9章SpringMVC框架

什么是Spring?

Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE full-stack (一站式 )轻量级开源框架。

Spring 以 IOC( Inversion of Control,控制反转)和 AOP ( Aspect Oriented Programming,面向切面编程)为 内核。

Spring 使用基本JavaBean来完成以前只可能由EJB ( Enterprise Java Beans,Java企业Bean)完成的工作,取代了EJB的臃肿、低效的开发模式。

Spring 致力于Java EE应用各层的解决方案。

在 表现层 它提供了Spring MVC等功能;

在 业务逻辑层 可以管理事务、记录日志等;

在 持久层 可以整合MyBatis 等技术。

虽然Spring贯穿于表现层、业务逻辑层和持久层,但它并不想取代那些已有的框架,而是以高度的开放性与它们进行无缝整合。

Spring框架的优点

非侵入式设计
Spring是一种非侵入式( non-invasive )框架,它可以使应用程序代码对框架的依赖最小化。

方便解耦、简化开发
Spring就是一个大工厂, 可以将所有对象的创建和依赖关系的维护工作都交给Spring容器
管理,大大地降低了组件之间的耦合性。

支持AOP
Spring提供了对AOP的支持,它允许将一些通用任务, 如安全、事务、日志等进行集中
处理,从而提高了程序的复用性。

支持声明式事务处理

只需要通过配置就可以完成对事务的管理,而无须手动编程。

方便程序的测试
Spring提供了对Junit4的支持,可以通过注解方便地测试Spring程序。

方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持。

降低JavaEE API的使用难度
Spring对Java EE开发中非常难用的一些API (如JDBC、JavaMail 等),都提供了封
使这些API应用难度大大降低。

Spring的体系结构

Spring框架采用的是分层架构,它一系列的功能要素被分成20个模块,这些模块大体分为
Core Container (核心容器)、 Data Access/Integration (数据访问/集成)、 Web、
AOP ( Aspect Oriented Programming)、Instrumentation、Messaging 和 Test。
如下图所示。

Core Container (核心容器)

Spring核心容器 是其他模块建立的基础,它主要由①Beans模块、②Core核心模块
Context 模块、④Context- support模块 和 ⑤SpEL ( Spring Expression Language, Spring表达式语言)模块组成。

Beans模块: BeanFactory

Beans模块:提供了 BeanFactory, 是工厂模式的经典实现,Spring将管理对象称为Bean。 ( BeanFactory在下面详讲 )

ps :实际开发中较少通过创建BeanFactory的方式来管理Bean对象(Java对象),常用方式为 : 通过context模块中的 ApplicationContext 来实现对Bean的管理。

但依然是通过 .xml文件的方式来 配置Bean对象的信息 ( 如 : 让哪个Java对象交给Spring管理,称为Bean )。

Context应用上下文模块 : ApplicationContext        

Context上下文模块 : 建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。其中 ApplicationContext接口是上下文模块的焦点。
ApplicationContext 和 BeansFactory都是用于管理Bean的生命周期和依赖关系的核心接口,实际开发中,ApplicationContext常用。
Bean的配置信息是放在 .xml文件中的,意味着要创建 ApplicationContext 就要通过指定的ApplicationContext.xml (有时也称为: beans.xml)来创建。
获取.xml的方式有两种 :
①通过 ClassPathXmlApplicationContext (类路径) —Java项目常用
②通过 FileSystemXmlApplicationContext (绝对路径)
( 在Java项目中,会通过 ClassPathXmlApplicationContext 类类实例化 ApplicationContext容器 )
( 在Web项目中,会通过Web服务器来实例化ApplicationContext容器 : 通过ContextLoaderListener来实现。三大框架整合时,会通过ContextLoaderListener的方式来实例化/创建 ApplicationContext )

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值