springssm框架工作原理及流程的理解

使用spring MVC负责请求的转发和视图管理

spring實现业务对象管理mybatis作为数据对象的持久化引擎

下面给出配置文件目录:

 这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口,当然我习慣将生成的接口名改为IUserDao,而不是直接用它生成的UserMapper如果不想麻烦就可以不改。完成后将文件复制到工程中如图:

  • 它是基于组件技术的.全部的应用對象,无论控制器和视图,还是业务对象之类的都是java组件.并且和Spring提供的其他基础结构紧密集成.
  • 不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet)
  • 可以任意使用各种视图技术,而不仅仅局限于JSP
  • 支持各种请求资源的映射策略


2. springmvc是基于方法开发(一个url对应一个方法)请求参数传递到方法的形参,可以设计为单例或多例(建议单例)struts2是基于类开发,传递参数是通过类的属性只能设计为多例。
3. Struts采用值栈存储请求和响应的数據通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析并给方法形参赋值,将数据和视图封装成ModelAndView对象最后又将ModelAndView中的模型数据通过reques域传輸到页面。Jsp视图解析器默认使用jstl

SSM优缺点、使用场景?



1. Mybatis和hibernate不同它不完全是一个ORMssm框架工作原理及流程,因为MyBatis需要程序员自己编写Sql语句不過mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql最后将sql执行的结果再映射生成java对象。

Mybatis学习门槛低簡单易学,程序员直接编写原生态sql可严格控制sql执行性能,灵活度高非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等因为这类软件需求变化频繁,一但需求变化要求成果输出迅速但是灵活的前提是mybatis无法做到数据库无关性,如果需要實现支持多种数据库的软件则需要自定义多套sql映射文件工作量大。

3. Hibernate对象/关系映射能力强数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码提高效率。但是Hibernate的学习门槛高要精通门槛更高,而且怎么设计O/R映射在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行

我要回帖

更多关于 学java六个月感觉啥也不会 的文章

 

随机推荐