Spring 对Java EE API 整合
因为 Java EE 太完备了, 所以spring还是要考虑到对 Java EE 的支持.
Java EE Web 技术相关
Servlet + JSP(JSR 035) 1.0 + DispatcherServlet
Servlet的API和JSP的API, 这里就避不过去springMVC的核心实现, DispatcherServlet, 其不仅对Servlet的API进行扩展, 同时还进行视图的渲染, 如JSP的渲染.
JSR 035 就是对 Servlet 和 JSP 标准的合并.
JSTL(JSR 052) 1.0 + JstlView
JSTL就是在JSP的基础上做的一些扩展, 比如Struts标签就是一个方面, spring自己也有一套JSP的Tag标签. (当然这都好久不用了)
JavaServer Faces(JSR 127) 1.1 + FacesContextUtils
java中提供的另一种web的渲染技术, JSF , 国内用的极少, 但是国外极多. JSF主要是一种视图渲染技术, 通过服务端的方式来保存一些状态.
Portlet(JSR 168) 2.0 - 4.2 DispatcherPortlet
Prolet与Servlet是相对的, Servlet主要关注Web方面, Protlet主要关注的是我们的门户, 这个门户的支持是在2.0~4.2, 在spring5 这个支持就被挪掉了
SOAP(JSR 067) 2.5 + SoapFaultException
SOAP(Simple Object Access Protocol), 简单对象访问协议, 是WebService的一个通讯协议.当然这里spring只是做了一个简单的封装, 并不是有它进行的实现.
WebServices(JSR 109) 2.5 + CommonAnnotationBeanPostProcessor
比如@WebService注解, 就是spring对WebService的一些支持
WebSocket(JSR 356) 4.0 + WebSocketHandler
其实WebSocket很早就出现了, 但是在Java规范里出现的比较晚, 可以看到JSR的编号比较靠后, spirng的支持也是在 spring4之后才有的.
Java EE 数据存储相关
前三个是sql方面的, 后一个是NoSql方面的
JDO(JSR 12) 1.0 - 4.2 JdoTemplate
JPA早期产品, 或者说是半成品, spring5就不支持的
JTA(JSR 907) 1.0 + JtaTransactionManager
JTA(Java Transaction API), 也就是java的事务API, 其实spring的事务抽象并不是它发明的, 只是在前人基础上做的封装
JPA(EJB 3.0 JSR 220的成员) 2.0 + JpaTransactionManager
JPA, 不用多说, Hibernate提供了主要的实现, 而spring提供的是事务的封装, 与JTA一样的类似规则
Java Caching API(JSR 107) 3.2 + JCacheCache
NoSql的实现, spring自己也有一个Cache的实现
Java EE Bean 技术相关
JMS(JSR 914) 1.1 + JmsTemplate
JMS在EJB又叫Java Message Driven Bean, 消息驱动Bean, JMS的消息中间件产品并不常用
EJB 2.0 (JSR 19) 1.0 + AbstractStatefulSessionBean
EJB里面有三种代表性的Bean, 有状态的Bean, 无状态的Bean, 消息驱动Bean, 会话Bean(Session Bean)
Dependency Injection for Java(JSR 330) 2.5 + AutowiredAnnotationBeanPostProcessor
这个就是那个依赖注入的API, 其实就是原来spring 的 @Autowired 注解, 放到 Java EE 中叫, @Injected 注解, AutowiredAnnotationBeanPostProcessor 提供了@Autowired 和 @Injected的实现
Bean Validation(JSR 303) 3.0 + LocalValidatorFactoryBean
这个是Hibernate提供的实现, 关于那些非空验证之类注解的.
资源相关
• JSR 官方网址:https://jcp.org/
• 小马哥JSR 收藏:https://github.com/mercyblitz/jsr
• Spring 官方文档根路径:https://docs.spring.io/spring/docs/