Spring框架简介
Spring是什么?
Spring是一个开源框架,为了解决企业级应用开发的复杂性而创建的。
Spring中的组件(也称为bean或JavaBean)并不需要满足JavaBean规范,可以是任何形式的POJO(Plain Old Java Object)。
Spring简化Java开发的四种策略:
- 基于POJO的轻量级和最小侵入性编程
- 通过依赖注入和面向接口实现松耦合
- 基于切面和惯性进行声明式编程
- 通过切面和模板减少样板式代码
Spring不会强迫用户实现Spring规范的接口或类,最坏的场景是类使用了Spring注解。
通过DI,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象时进行设定。对象无需自行创建或管理他们的依赖关系,依赖关系将被自动注入到需要它们的对象中去。
DI使得类之间可以松耦合
装配(wiring):创建组件之间协作的行为
Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。负责对象的创建和组装。Spring自带了很多应用上下文的实现,它们之间的区别仅仅在于如何加载配置。
AOP将遍布各处的功能分离出来形成可重用的组件。
诸如日志、事务管理和安全这样的系统服务通常被成为横切关注点。因为他们会横跨多个组件。
将这些横切关注点分散到各个组件中,将会带来双重的复杂性。
Spring通过模板封装来消除样板式代码,Spring的JdbcTemplate来替代样板式代码。
Spring容器负责创建对象、装配它们,配置它们并管理它们的整个生命周期,从生存到死亡。
容器是Spring框架的核心,Spring容器使用DI来管理构成应用的组件,它会创建相互协作的组件之间的关联。
Spring自带多个容器实现,可以分为两类:
- 实现接口BeanFactory接口的容器
- 实现ApplicationContext接口的容器
Spring框架包括多个模块,这些模块按照功能做以下划分:
- Spring核心容器包括:beans、core、context、expression、context support
- AOP模块:AOP、aspects
- 数据访问与集成:JDBC、transaction、ORM、OXM、messaging、JMS
- web与远程调用:Web、Web Servlet、Web portlet、WebSocket
- instruction:Instrument、Instrument Tomcat
- 测试:Test