Java Web开发架构
显示层
- JSP结合动态显示出列表数据,生成的是HTML
- 使用JavaScript、CSS、JQuery等开发框架进行页面的动态效果
- 更好的UI设计
- 传统框架:HTML + CSS + JavaScript + Ajax + JSP + JSTL + EL + JSON
- 目前流行框架:Bootstrap + JQuery + JSON + Ajax
控制层
- 服务器端数据验证
- 将请求参数转换为VO
- 调用业务层处理
- 负责跳转以及信息转发
- 传统框架:Servlet + Filter
- 目前流行框架:Struts 2.x ,String MVC
业务层
- 负责数据库的打开与关闭
- 进行更新操作的事务处理(使用代理完成)
- 调用若干个数据层
- 传统框架:java原生代码实现
- 目前流行框架:Spring
数据层
- 负责数据库的CRUD处理
- 负责数据的缓存控制
- 传统框架:JDBC原生代码(重复性高)
- 目前流行框架:MyBatis,IBatis,Hibernate
Spring开发框架
- Spring设计思想 = 超级大工厂 + 超级代理设计
- 官网:https://spring.io/
- maven软件包:https://mvnrepository.com/artifact/org.springframework
Spring开发框架的核心模块
核心容器组件(超级大工厂)
- Spring本身的容器和web容器是并行状态,同时Spring有自己一套独立的对象创建与回收管理机制
- Beans:Spring中针对于所有类对象的维护管理,有了Spring后开发都不要出现关键字new
- Core:包括了整个Spring的运行环境最底层支持,例如依赖注入、控制反转、对象关系的配置、资源访问等
- Context:描述的是整个开发的上下文环境,所有的对象的生命周期的控制都可以通过此组件完成
- 表达式语言:使用字符串来描述各种复杂的操作关系
切面编程支持(超级大代理)
- 给了所有开发者自由控制切面的能力,因此开发者只需要关心核心功能实现。
- AOP:是整个的切面编程实现的核心灵魂,可进行数据库关闭、事务控制等辅助处理
- Aspect:提供了切入点表达式支持
- Instrumentation:动态监测JVM在运行中的状态
数据访问与集成模块
- 进行数据层操作简化,包括数据层处理和与第三方开发框架的整合能力(MyBatis,IBatis,Hibernate)
- JDBC:JDBC支持,包括针对配置与数据源的处理操作
- ORM:与第三方"OR-Mapping"组件的整合处理操作,可利用此组件实现与其他数据层的无缝衔接
- JMS:可以进行远程的消息处理
- Transactions:提供了各种事务的控制
- OXM:提供对象与XML文件之间的互相转换
WEB支持模块
- MVC框架支持:Spring提供了一套自己的MVC开发框架
- 其他组件:提供有与其他第三方框架的整个处理(Struts)