Spring框架是为解决企业应用开发的复杂性而诞生,它简化了Java应用开发,提高了应用开发的可测试性和可重用性。
Spring的核心理念是控制反转(IoC),其通过依赖注入(DI)的方式来实现控制反转。
Java中的常见概念
JDK(Java Development Kit)是Java开发工具包,是Java官方提供的Java运行和开发软件包,主要包含Java运行环境(JRE)、Java基础类库和工具,官方会定期或不定期的发布更新包。
J2SE(Java 2 Platform Standard Edition):面向桌面应用开发
J2EE(Java 2 Platform Enterprise Edition):面向企业给应用开发
J2ME(Java 2 Platform Enterprise Edition):面向移动终端开发
EJB是Java EE服务器端组件模型,其目标与核心是开发和部署 分布式应用程序。将业务逻辑层从客户端抽取出来,封装在一个组件中并运行在一个独立服务器上,客户端软件通过网络调用服务端的组件实现业务逻辑,这个运行在独立服务器上且封装了业务逻辑的组件被称为EJB
Spring的概念及理念
Spring是一个轻量级的依赖注入(DI)和面向切面编程(AOP)的容器框架,极大地降低了企业应用系统开发的耦合性,提高了灵活性
Spring框架体系结构
1.核心容器
容器时Spring框架的基础,负责Bean的创建、拼接、管理和获取的工作。Beans和Core模块实现了IoC/DI等核心功能,BeanFactory是容器的核心接口。
Context模块在核心模块之上进行了功能的扩展,添加国际化、框架事件体系、Bean生命周期和资源加载透明话等功能
SpEL用于查询和管理容器管理对象、获取和设置对象属性、调用对象方法、操作数据等
2面向切面编程
在Aop模块中,Spring提供了面向切面编程的支持,类似于事务和安全等关注点从应用中解耦出来。AspectJ是一个面向切面编程的框架,Spring Aspects模块提供了对它的集成。
3数据访问/集成
JDBC模块实现了对JDBC的抽象,简化了JDBC进行数据库连接和操作的编码
Spring在DAO的抽象层面,对不同的数据访问技术进行了统一和封装,建立了一套面向DAO的统一异常体系。
4Web与远程调用
Servelet模块包含了一个强大的MVC框架,用于Web应用实现视图层与逻辑层的分离。
5Instrumentation(检测)
Instrument模块提供了在应用服务器中的使用类工具的支持和类加载器实现。Instrument Tomcat是针对Tomcat的Instrument实现。
6消息
Messaging模块用于消息处理,也包含课一系列用于映射消息的注解
7测试
Test模块通过JUnit和TestNG框架支持的单元测试和集成测试,提供了一系列的模拟对象辅助单元测试。。另外,Spring提供了集成测试的框架,可以很容易的加载和获取应用的上下文