一、spring framework核心特性
1、IOC容器:IoC Container
2、Spring事件:Events(基于java标准事件的扩展)
3、资源管理:Resources(基于java资源管理,API也借鉴了java的)
4、国际化:i18n(基于java国际化)
5、校验:Validation
6、数据绑定:Data binding(java没有,外面属性与pojo的属性、set/get方法之间的绑定、这样就会涉及字符类型与复杂类型之间转换,也就是下面的类型转换)
7、类型转换:Type Conversion
8、Spring表达式:Spring Express Language,通过表达式中通过符号来引用变量,实现动态调用的目的
9、面向切面编程(AOP)
二、spring framework数据存储
1、JDBC:JDBCTemplate Mybatis、hibernate
2、事务抽象(Transactions)
3、DAO支持
4、O/R映射:JPA、hibernate
5、XML编列
三、spring framework Web
spring Web有两个方向技术栈:
1、Web Servlet技术栈:spring mvc、WebSocket、SockJS
2、Web Reactive技术栈:spring WebFlux、WebClient、WebSocket
四、技术整合
1、远程调用:基于RMI协议的、基于Hessian协议(比如dubbo)、基于Thrift协议
2、JAVA消息服务(异步调用):JMS(ActiveMQ),而不包括非JMS规范的实现(如:kafka、RocketMQ)
3、JAVA连接架构(JCA):这个架构主要是统一一些JAVA的一些资源连接(此点使用少)
4、JAVA管理扩展(JMX):CPU、磁盘利用率:通过spring1.2后引入的@ManagedResource注解简化实现
5、JAVA邮件客户端(Email)
6、本地任务(利用java多线程技术实现,单机版的,非分布式的)Task
7、本地调度(利用java多线程技术实现,单机版的,非分布式的)Scheduling,或者可以使用JAVA的JUC框架也可以完成类似调度工作
8、缓存抽象(Caching):通过注解方式抽象缓存的使用,实现缓存透明化
9、Spring测试(Testing)
- 模拟对象:用于单元测试
- TestContext框架:用于集成测试,spring用于整合集成测试的框架
- Spring MVC测试:测试Web服务端的
- web测试客户端:测试Web客户端的