spring学习第一周
Spring 框架是一个开源的 Java 平台,最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。它的到来确实可以说是java程序员的“春天”。目前Spring 是最受欢迎的企业级 Java 应用程序开发框架,使用 Spring 框架可以创建性能好、易于测试、可重用的代码。
课程体系:
IoC容器----管理--->Bean(生命周期,作用域)等。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。
核心容器
核心容器由spring-core,spring-beans,spring-context,spring-context-support和spring-expression(SpEL,Spring表达式语言,Spring Expression Language)等模块组成。
数据访问/集成
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块。
Web
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成。
其他
还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块。
在使用spring时应该遵循最少依赖原则,只依赖自身需要的功能,减少相关冲突。
Spring版本特性
Spring 编程模型
面向对象编程:
契约接口: Aware、BeanPostProcessor…
设计模式: 观察者模式、组合模式、模板模式…
对象继承: Abstract*类
面向切面编程:
动态代理: JdkDynamicAopProxy
字节码提升: ASM、CGLib、AspectJ
面向元编程:
注解: 模式注解(@Component、@Service、@Respository)
配置: Environment抽象、PropertySources、BeanDefinition…
泛型: GenericTypeResolver、ResolvableType…
函数驱动:
函数接口: ApplicationEventPublisher
Reactive: Spring WebFlux
模块驱动:
Maven Artifaces
OSGI Bundles
Java 9 Automatic Modules
Spring @Enable*