spring4 系列一 概览

零、前言

java是静态类型语言,为了能达到动态类型语言的效果,需要支持

1、控制反转(转给web容器):调用实现的地方写死在代码里不灵活,所以写在xml中。

2、依赖注入:在需要的时候由容器来注入需要的对象,是具体被反转的东西

3、aop:利用反射进行hack,对于原生支持函数式编程的语言来说根本不需要这种hack的机制

4、java.lang.instrument 实现对jvm和class的动态代理

http://www.cnblogs.com/wade-luffy/p/6078301.html

一、spring4工程概览

spring boot

微服务

spring framework

最基础的框架功能,比如ioc、aop、webmvc、声明式的transaction

Spring Security

处理安全验证等问题

Spring Session

session相关的问题

Spring Cloud

分布式计算基础组件

Spring Cloud Data Flow(微服务架构)

数据的导入、导出、采集、实时分析等,用于对大数据工程进行支持

二、spring framework概览

1、 Core Container

1)spring-core 封装了asm、 cglib等动态改字节码的库,工具类,obj的反射,io,序列化,并发task,数据类型间的转换,注释、factory、configurale、DecoratingProxy、classloader等顶级接口(反射+配置)

2)spring-beans 工厂模式,以及基于xml、annotation等方式创建bean

3)spring-context 依赖注入,javaee环境的创建

4)spring-context-support为集成第三方库(如定时器Quartz)提供支持。

   5)spring-expression 解释和执行字符串表达的程序(在定义xml或注释时,执行程序逻辑)

2、AOP and Instrumentation 动态代理相关

spring-aop

spring-aspects

spring-instrument

spring-instrument-tomcat

spring-messaging

3、Data Access/Integration

spring-jdbc 

spring-tx    声明式的使用transaction

spring-orm

4、web相关

spring-web: web context、http 

spring-webmvc, 

spring-websocket, 

spring-webmvc-portlet

5、test

单元测试

集成测试

mock

三、spring boot概览

1、传统基于容器的javaee开发的痛点:

配置、集成复杂;测试、发布等流程复杂;不适合做微服务,企业应用的基本思想是在统一的应用服务器中,部署多个app,像安全、事物、分布式、数据库等功能由应用服务器提供,而微服务讲究的是小巧、轻快、分布式,易扩展,快速迭代。

2、解决的问题:

把web开发和普通java app开发统一成使用main作为入口

把war jar等发布方式,变成内嵌web容器,方便实现微服务

提供pom简化配置

不需要代码生成和xml配置

3、常见starter的配置文件信息

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-starters

相关推荐