04丨特性总览:核心特性、数据存储、Web技术、框架整合与测试
- Spring的事件是基于Java的标准事件进行扩展的,但与Java的标准事件会有一些区别
- 资源管理也是继承了Java的资源管理,它的有些API是借鉴了Java核心的底层API的实现
- Java默认就支持国际化,因此Spring国际化也是基于Java API进行实践的
- 校验,Java JDK底层并没有提供,Spring自己做了一些特殊的一些API的设置,可以借鉴Bean Validation,Spring在它的Framework中做了一些Bean Validation的整合
- 数据绑定也是Spring特有的实现,Java中没有,它是外面的一些属性和Java的POJO的Setter、Getter来进行一个数据上的转化和绑定
- 有了绑定肯定会涉及到一些简单的字符类型如何转化为一些复杂的类型,类型转换也Java的核心特性之一,可以帮助我们有扩展性的进行转换
- Spring表达式和JSP表达式如出一辙
数据存储相对于核心内容比较单薄一点,不过它的复杂度要更大一些
- Mybatis 和 Hibernete 都是在JDBC API 进行实现的,Spring在上面做了一些相应的实现,比如JdbcTemplate
- 事务抽象是面试中必问的,它来源自EJB,Spring只不过在EJB的基础上做了一些简化工作,事务抽象在核心实现中有一个单独的API或单独的规范来进行实现,Spring也只是做了一些简单的封装
- DAO的支持是Spring中的一个很大的封装,这个封装帮助简化我们DAO的写法或一个实现方式,如常见的SQLException的一个封装
- JPA是JDO的一个替代者,JPA的默认实现是Hibernate
- XML编列一般大家比较陌生,做一个对比,Java的序列化差不多就相当于这里的编列,反序列化就是反编列
从Spring 5开始引入了Spring Reactive的技术栈
- Spring WebFlux和Spring MVC的注解其实是一样的,只是底层的实现发生了变化,传统的Spring MVC需要Servlet引擎来进行支撑,Reactive默认是netty下的web server,Reactive也可以使用Servlet引擎来进行实现
- Servlet规范在3.0以后规划会对WebSocket进行支持,那么Web Servlet技术栈中也会进行支持
- SockJS是另一个技术栈
- 在Spring 5.0 之前有一个叫RestTemplate或HttpClient的东西,它是一个同步的HTTP执行客户端WebClient引入之后把过去的同步执行变成了异步回调的方式
内容庞杂,因为没有一个具体的来进行唯一的整合
- 模拟对象通常说是MOCK对象,如HttpServletRequest对象通常获取时必须要在Servlet引擎里面,同时要像Tomacat或Jetty的方式来进行打开,通过外部的请求来触发对象的生成;MOCK对象我们可以动态的去生成它,比如
Spring Framework里面生成的MockHttp接口,这个接口能够帮助我们去实现一些方法的调用,帮助我们完成单元测试 - 除了单元测试,还有集成测试,包括TestContext框架,这个框架其实是Spring对它的集成测试过程的一个整合,比如说对数据库远程方法调用,这时候需要把整个Spring应用上下文给启动,这时候也必须借助于TestContext框架来进行整合