《Spring5高级编程》

学习目标

1、IoC DI

2、Spring5 新功能

3、使用Spring MVC和WebSocket构建基于Spring的WEB应用程序

4、使用Spring WebFlux构建Spring Web反应式应用程序

5、Junit5测试

6、Java8的lambda表达式

7、使用SpringBoot达到更高水平,以获取任何类型的Spring应用程序并立即运行

8、使用Java9 新功能

源码

http://www.apress.com/9781484228074

https://github.com/apress/pro-spring-5

 

birth:2002-10

father:Rod Johnson

 

几个概念

控制反转(Inversion of Controll 【IoC】):将组建依赖项的创建和管理外部化。

依赖注入(Dependency Injection 【DI】):是IoC的一种特殊形式

    Spring的DI实现基于两个核心的Java概念:Java Bean 和接口

    实际上,任何Spring管理的资源都被称为bean

AOP:在单个地方实现横切逻辑(即适用于应用程序多个部分的逻辑),常见的Spring AOP和Eclipse AOP。【用处:spring事务管理等

SpEl(Spring Expression Language):为评估表达式以及在运行时访问Java对象和SpringBean提供了强大功能。

Spring项目

Spring社区

Spring工具:Spring Tool Suite(STS)

Spring Security:保护web应用程序

SpringBoot:开箱即用的配置,封装在启动包(starter)

Spring批处理和集成:SpringBatch Spring Integration

Spring Data:NoSql

作业调度:JDK Timer和Quartz

其他:对象/xml映射,管理事务,jee集成,mvc,WebSocket支持,远程支持,邮件支持,动态脚本支持,简化异常处理、JSR303(Bean Validation)

Spring的替代品:JBoss Seam 、Goggle Guice、PicoContainer

 

Spring打包

Spring模块只是简单的Jar包文件,它打包了该模块需要的代码。从Spring 5 RELEASE版本开始,Spring 提供了21个模块

《Spring5高级编程》_第1张图片

Spring模块
模块 描述
aop 使用aop功能需要的类,支持与aspectJ集成的类。如需使用aop功能,如声明式事务管理。
aspects 与AspectJ AOP库进行高级继承的类。例如为完成Spring配置而使用Java类,并且需要AspectJ风格的注解驱动的事务管理
beans 包含所有支持Spring对SpringBean进行操作的类。该模块中的大多数类都支持SpringBean的工厂实现,例如处理Spring XML配置文件和Java注解所需要的类。
spring-messaging 为集成messaging api和消息协议提供支持。
context 包含为Spring Core提供扩展的类。所有类都需要使用Spring的ApplicationContext功能,以及Enterprise JavaBeans(EJB)、Java Naming and Directory Interface(JNDI)和Java Management Extension (JMX)集成的类。还包含Spring 远程处理类,与动态脚本(JRuby、Groovy、BeanShell)、JSR-303(Bean Validation) 、调度和任务执行等集成的类
context-indexer

包含一个索引器实现,提供对META-INF/spring.componets中定义的候选项的访问功能。单核心类CandidateComponentsIndex并不能在外部使用

context-support

包含对spring-context的进一步扩展。

在用户界面方面:有一些支持邮件并与模板引擎(Velocity、Freemarker、JasperReport等)集成的类

此外:包括各种任务执行和调度库(CommonJ、Quartz)的集成

core

每个spring应用程序都需要的主要模块。在该jar中可以找到所有其他spring模块所共享的所有类。

另外包含整个Spring代码库中都使用的实用程序类。

epression SpEL支持类
instrument 包含用于JVM启动的Spring代理工具。如果在Spring应用程序中使用AspectJ实现加载时织入,那么该模块是必须的。
jdbc 包含所有JDBC支持类。数据库访问,包括支持数据源、JDBC数据类型、JDBC模板本地JDBC连接等
jcl JCL,全称为"Jakarta Commons Logging",也可称为"Apache Commons Logging"。项目中使用JCL的好处是降低与具体日志框架的耦合,可以灵活改变使用的具体日志框架.
jms 包含JMS支持的所有类
orm 扩展了Spring标准的JDBC功能集,支持流行的ORM工具,包括HIbernate、JDO、JPA、iBatis等。其许多类都依赖于spring-jdbc。
oxm 为Object/XML映射(oxm)提供支持。用于抽象xml编组和解组以及支持Castor、JAXB、XMLBeans和XStream等常用工具的类都包含在此模块。
test 提供模拟类帮助测试应用程序(如模拟HttpservletRequest、HttpservletResponse等等),提供了与junit单元测试框架的紧密集成。
tx 提供Spring事务基础架构的所有类。可以从事务抽象层找到相应的类来支持Java Transcation API(JTA)以及与主要供应商的应用程序服务器集成。
web 包含在web应用程序使用spring所需要的核心类。包括用于自动加载ApplicationContext的类,文件上传支持类、用于执行重复任务的类等
web-flux WebFlux是一个典型非阻塞异步的框架,它的核心是基于Reactor的相关API实现的。相对于传统的web框架来说,它可以运行在诸如Netty,Undertow及支持Servlet3.1的容器上,因此它的运行环境的可选择行要比传统web框架多的多。
web-mvc Spring 自己的MVC框架 的所有类
websocket JSR-356(Web Socket)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Spring5)