Spring简介
来源:互联网 发布:哪里找到淘宝达人 编辑:程序博客网 时间:2024/04/28 05:44
Spring的诞生
- 日益复杂的Java企业应用开发
- EJB之殇
- 轻量级开发框架之需
- Spring横空出世
- Rod Johnson 《Expert One-on-One:J2EE Design and Development》
- 应对应用复杂性,Spring的关键策略
- 基于POJO的轻量级和最小侵入性编程
- 通过依赖注入DI和面向接口实现松耦合
- 基于切面AOP和惯例进行声明式编程
- 通过切面和模版减少样板式代码
POJO
- POJO定义
- POJO(Plain Old Java Objects)简单的普通的Java对象,Martin Fowler等发明的一个术语,为了避免和EJB等混淆
- 不具有任何特殊角色,不继承/实现任何其他Java框架的类或接口
- 很多框架具有侵入性,强迫开发者编写与框架绑定的大量冗余,难以测试的代码
- EJB2.0
- Struts
- Spring强调基于POJO的最小侵入性编程
- Spring不会强迫实现特定规范的接口或者继承特定类
- Spring通过依赖注入赋予POJO以魔力
- Java EE 中轻量级框架与重量级框架的概念
- 简单一句话:量级主要由对容器的依赖性决定,依赖性越小,越轻量
- 容器:用来管理组件行为的一个集合工具,组件的行为包括与外部环境的交互、组件的生命周期、组件之间的合作依赖关系等等
- 在Java应用开发环境中,“轻量级Java”主要是指两个东西:简化的编程模型和更具有响应能力的容器。轻量级Java旨在消除与传统JavaEE API有关的不必要的复杂性和限制,同时缩短应用程序的部署时间
- 轻量级技术中,控制反转IoC(依赖注入DI)最关键。使用IoC,开发人员不需要编写复杂的代码来执行查询、处理基础架构异常或管理连接,就能够解决对象依赖性问题。这有助于简化代码、将业务逻辑与基础架构分离,从而使应用程序更容易于维护
- 轻量级 Java的另一个关键特征是,它不会强迫业务对象遵循平台特定接口。这循序开发人员在普通Java对象(POJO)中实现业务逻辑,从而提高生产率
依赖注入
- ”过于“复杂的软件系统
- 组件化的思想:分离关注点
- 依赖注入:强制将组件的构建和使用分离
- 耦合具有两面性
- 耦合代码难以测试
- 一定程度的耦合不可避免
- 依赖注入DI
- 依赖注入好处:松耦合
- Spring通过应用上下文装载Bean的定义把它们组装起来,应用上下文负责对象的创建和组装
应用切面
- 横切关注点
使用模版消除样板式代码
应用上下文
- Spring应用中,对象生存于Spring容器中
- 容器是Spring框架的核心
- Spring容器:
- Bean工厂
- 应用上下文
- 应用上下文基于Bean工厂而构建,并提供面向应用的服务
- Spring常用应用上下文:
- ClassPathXmlApplicationContext
- FileSystemXmlApplicationContext
- XmlWebApplicationContext
Bean的生命周期
Spring模块
- 获取Spring发布包
- Spring下载社区:SpringSource自建的下载社区www.springsource.com/download/community
- Maven中心:Maven工具默认访问的仓库
- 企业模块仓库:由SpringSource维护的一个企业模块仓库,类似Maven
- Maven公公仓库:位于Amazon S3服务器中
- Spring发布包不再附带例子项目,可以通过SVN客户端工具从https://annosvn.springframework.org/svn/spring-samples下载
- 核心Spring容器
- 核心容器负责Spring应用中的Bean的创建、和管理
- Bean工厂—提供依赖注入
- 应用上下文—提供配置Spring的不同方式
- 该模块还提供许多企业服务:邮件、JNDI访问、EJB集成、调度
- Spring的AOP模块
- 是Spring应用开发切面的基础
- AOP有助于对象解耦
- AOP可将遍布应用的关注点从所应用的对象中解耦出来
- 数据访问与集成
- Spring的JDBC和DAO模块封装了数据库访问的样板代码,使得代码简介明了并有效管理异常
- Spring的ORM模块简历在对DAO的支持之上,并为一些ORM框架提供了构建DAO的简便方式
- Spring对一些流行ORM框架进行集成
- 模块还包括在JMS之上构建的Spring抽象层,使用消息以异步方式与其他应用集成
- 模块还使用AOP为Spring应用中的对象提供事物管理服务
- Web和远程调用
- Spring MVC
- Spring远程调用服务集成了RMI、Hessian、Burlap、JAW-WS,还自带一个远程调用框架:HTTP invoker
- 测试-测试模块测试Spring应用
Spring Portfolio
- 整个Spring Portfolio几乎为每个领域的Java开发提供Spring编程模型
- Spring Web Flow
- Spring Web Service
- Spring Security
- Spring Intergration
- Spring Batch
- Spring Social
- Spring Mobile
- Spring Dynamic Modules
- Spring Rich Client
1 0
- Spring简介
- Spring简介
- Spring简介
- Spring 简介
- Spring简介
- Spring简介
- Spring 简介
- Spring简介
- Spring简介
- spring 简介
- Spring简介
- Spring简介
- spring简介
- Spring简介
- Spring简介
- Spring简介
- Spring简介
- Spring简介
- 关于CoordinatorLayout与Behavior的一点分析
- Android callback 回调方法复习
- 迷茫<第一篇:初到北京>
- 离散数学随记
- Swift开发:创建XML文件,包含节点,属性值
- Spring简介
- 在一个jsp页面使用include动态包含servlet
- 就已学到的集合框架总结
- 哥尼斯堡的“七桥问题”----欧拉图的判定
- 查找文件名中包含字符的文件
- Maven-子工程使用依赖以及Parent中的依赖管理
- 好未来2017春季php实习生面试题
- 华为(Huawei)S5700-24TP-SI(AC)交换机 安装光模块教程
- 腾讯暑假实习题和答案