MVC分层思想
各层相互分离,各司其职,代码复用,解耦,模型接受视图数据的请求,并返回最终的处理结果
控制器 controller
控制请求的处理逻辑,对请求进行处理,负责请求转发。
视图 view
用户看到并与之交互的界面
模型 model
代表一种企业规范,就是业务流程/状态处理/业务规则的制定。
框架介绍
数据访问层:dao数据访问框架,解脱使用jdbc操作数据库的烦恼,数据层的使用更加方便
视图控制层:解放传统的servlet开发模式
Bean容器:轻量级开发框架,管理应用业务bean,控制反转和面向切面,与其他框架集成
SSM框架:spring springMVC mybatis
SSH框架:spring struts2 Hibernate
ssm和ssh 优缺点
mybatis:
轻量级
入门简单
更加灵活
可以进行更细致的sql优化
dao层封装性不好,需要写大量重复代码和sql语句,需要维护大量sql和结果映射
框架简陋,功能相对缺失,如分页就比较差
数据库迁移不好,
hibernate
重量级
入门门槛更高
不够灵活
封装性好,dao层开发比mybatis简单
有更好的二级缓存,缓存比mibatis好,对CRUD的对象维护较好
数据库移植性好
springMVC
基于方法开发,需要的参数通过方法形参传递,更符合编程逻辑
与spring无缝接入,对于属性的注入和参数获取更加方便,配置基于注解
struts基于类开发
由于struts的标签库,导致开发效率低下
struts有安全漏洞
spring
spring构成
核心容器:
spring-beans和spring-core
控制反转 依赖注入 beanfactory,工厂模式的实现
spring-context
一个配置文件,向spring框架提供上下文信息
spring-expression
可以查询 管理运行中的对象,可以方便的调用对象的方法,操作数组集合等
统一表达式语言的拓展模块
spring-aop
以jvm的动态代理技术为基础,设计了一系列的aop横切实现
通过配置其管理特性,将面向切面的编程功能集成到spring框架中,
使任何对象支持AOP
spring data access
spring-jdbc
简化原生jdbc操作
spring-tx
spring-transaction 事务控制实现模式
sprin-orm
集成hibernate和mybatis,java persistance API (JPA) 和java data Object(JDO)
用于资源管理,数据访问对象(DAO)的实现和事务策略
spring-jms
java-messaging-service发生和接受信息
spring-oxm
oxm提供一个抽象层以支撑OXM,object-to-xml-mapping,对象和XML数据的互相转换。
spring-web:
为基于web应用程序提供上下文,简化了处理多部分请求 和 将请求参数绑定到域对象的工作
spring-web
web
spring-webmvc
mvc
spring-websocket
websocket
spring-webmvc-portlet
spring-messaging 报文发生
报文发生
spring-test
测试模块