1、B/S架构的JavaEE开发设计模式,JavaEE架构分成三个层次即表现层、业务逻辑层、数据持久层;而这三层分别通过Struts、Spring、iBatis开源的框架紧密组合在一起的。

  1. Struts:主要关注的是Controller流程
  2. Spring:提供了Bean的配置基础,AOP的支持和抽象事务支持等,还可以与其他开源框架进行无缝结合,有一个显著的特点:在某个层面上如果不需要Spring的支持,就可以不使用,只使用它的某一部分的功能。【整体管理项目】{Spring框架的各个模块都是可以单独存在的,或者与其他一个或多个模块联合实现。}
  3. Hibernate:java开源代码的对象关系映射,对JDBC进行了轻量级的对象封装,用对象编程思维来操纵数据库【即:数据持久化】
  4. iBatis:使用xml映射文件在SQL层面上进行持久化操作,当将使用JDBC的细节全部隔离开来,在xml中统一管理。

2、MVC:     模型层----视图层-----控制层

    2.1视图:用户可以看到的界面,向用户展示着相关数据,且能够接受用户输入的数据,发送给控制器,不进行任何相关操作,可以向模型查询业务状态但不可以改变模型

    2.2模型:业务数据的处理层,同一个模型可以被多个视图重用,模型接收视图请求的数据,放回最终处理结果;【模型是MVC的最核心的部分】

    2.3控制层:起到一个传递的作用,不做任何的数据处理,然后将用户的请求传递给模型层进行处理,模型根据用户请求进行相应的业务逻辑处理。

3、Spring框架中重要的两个功能:IOC{控制反转}和AOP{面向对象编程}

  3.1 控制反转IOC

      容器(在Spring框架中是IOC容器)负责将这些联系在一起,典型场景中:容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。

  3.2 面向对象编程AOP

      是一种编程技术,允许程序员对横切关注点或者横切典型的职责分界线的行为(例如日志和事务管理)进行模块化【AOP的功能完全集成到了Spring事务管理、日志和其他各种特性的上下文中】

4、iBatis框架

  4.1iBatis的组成:包含两类组件,即SQL Maps组件和DAO组件

    4.11  SQL Maps:不使用JDBC,不在程序中耦合java代码与sql语句,进而实现java对象和关系型数据库管理系统{DBMS}的增删改查{CRUD}操作;

        基于xml配置文件,使用简单xml配置文件将java Bean映射成SQL语句。其中输入输出参数可以是基本类型的包装类,或简单类(如:Integer,String等),或HashMap,也可以是复杂的类{直接是对象}

  

      

SSI框架【Struts、Spring、iBatis、Hibernate】的更多相关文章

  1. Maven环境下搭建SSH框架之Spring整合Hibernate

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...

  2. ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建

             ibatis项目中用到了一些基本配置,须要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比較好理解.仅仅是须要他们的配置中每个类的含义,还有当中的一些细节 ...

  3. SSH框架之Spring+Struts2+Hibernate整合篇

    回顾 -Hibernate框架 ORM: 对象关系映射.把数据库表和JavaBean通过映射的配置文件映射起来, 操作JavaBean对象,通过映射的配置文件生成SQL语句,自动执行.操作数据库. 1 ...

  4. SSH程序框架之Spring与HIbernate整合

    spring整合hibernate 有两种方式 1.注解方式 2.xml方式实现 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory ...

  5. Spring学习8-用MyEclipse搭建SSH框架 Struts Spring Hibernate

    1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Ex ...

  6. ssh框架中spring整合hibernate的配置文件模板(带详细注释)

    applicationContext.xml的配置文件模板 <?xml version="1.0" encoding="UTF-8"?> <b ...

  7. 使用struts+spring+hibernate组装web应用

    这篇文章将讨论怎样组合几个着名的框架去做到松耦合的目的,怎样建立你的构架,怎样让你的各个应用层保持一致.富于挑战的是:组合这些框架使得每一层都以一种松耦合的方式彼此沟通,而与底层的技术无关.这篇文章将 ...

  8. SSH(Spring Struts2 Hibernate)框架整合(注解版)

    案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2  Hibernate 案例架构: 1.依赖jar包 pom.xml < ...

  9. Maven搭建简单的SPring+SpringMVC+Hibernate框架

    公司的项目用到的框架是Spring+SpringMVC+Hibernate 以前没有用过,所以要系统的学习一下,首先要学会怎么搭建 第一步  创建一个Maven的web项目  创建方法以前的博客中有提 ...

  10. velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)

    velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主 ...

随机推荐

  1. 'No application found. Either work inside a view function or push'

    问题: 说是create_all()的地方有问题,莫名其妙. 后来经过查资料,找出解决方法.附上代码如下:

  2. python 小游戏,和电脑玩剪刀石头布

    # -*- coding: utf-8 -*- """ Created on Fri Oct 25 16:28:12 2019 if判断综合演练,剪刀石头布 @autho ...

  3. Redis---系统学习

    1.安装Redis Docker 2.查看Redis配置 进入Docker中的Redis容器: 进入启动命令目录:cd /usr/local/bin/ 启动redis客户端:./redis-cli c ...

  4. App 区别

    本文的结构主要分为以下部分: 1.app的分类 2.每类app的定义,明确各类app具体是什么 3.各类app的优缺点 4.具体开发过程中,到底该采用哪种类型的app 1.app的分类 大致可以分为这 ...

  5. 调整数组顺序使奇数位于偶数前面(python)

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 方法1:冒泡  O( ...

  6. __new__与__init__的区别

    __new__  : 控制对象的实例化过程 , 在__init__方法之前调用 __init__ : 对象实例化对象进行属性设置 class User: def __new__(cls, *args, ...

  7. MCU2FPGA之SPI时序总线

    转载自:http://blog.csdn.net/ce123/article/details/6895408 SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是S ...

  8. Ajax中浏览器的缓存问题解决方法

    我们在做项目中,一般提交请求都会通过ajax来提交,但是测试的时候发现,每次提交后得到的数据都是一样的,调试可以排除后台代码的问题,所以问题肯定是出在前台 每次清除缓存后,就会得到一个新的数据,所以归 ...

  9. POJ 3764 The xor-longest Path ( 字典树求异或最值 && 异或自反性质 && 好题好思想)

    题意 : 给出一颗无向边构成的树,每一条边都有一个边权,叫你选出一条路,使得此路所有的边的异或值最大. 分析 : 暴力是不可能暴力的,这辈子不可能暴力,那么来冷静分析一下如何去做.假设现在答案的异或值 ...

  10. R 画散点图

    ggplot(data=df, aes(x=n, y=rt, group=kernel, shape=kernel, colour=kernel)) + geom_point(fill="w ...