ssh复习资料

spring中的AOP

AOP:面向切面编程,AOP在实际项目中的主要运用场景:权限管理、事务管理、安全管理、日志管理、调试管理等这些与业务逻辑不是很密切的公共方法,我们就可以使用AOP。

AOP其实就是一种设计模式,或者可以说是一种编程思想,在spring中我们只需在配置文件中使用<aop:config>元素。那么mvc的拦截器又是什么鬼呢?可以理解为springmvc对AOP的一种实现方式,在配置文件中使用<mvc:intercepters>元素进行配置。现在好多人都把spring、AOP和MVC拦截器看成是一种相同的方式,都叫拦截器或者AOP。

java过滤器与springmvc拦截器的区别

(1)java过滤器是基于函数回调,而拦截器是运用的类反射机制。

(2)拦截器不依赖servlet容器,而过滤器则依赖。

(3)拦截器只能对action请求起作用,而过滤器则是全部请求都可以。

(4)拦截器可以访问action的上下文、值栈里的对象,而过滤器则不能访问。

(5)在action的生命周期中,拦截器可以多次被调用,而过滤器器只能在容器初始化时被   调用一次。

(6)拦截器可以获取IOC容器中的各个bean,而过滤器则不行,这点很重要,在拦截器里  面注入一个service,可以调用业务逻辑。

MyBatis回顾

(1)MyBatis是一个开源的持久层框架。

(2)Mis编程步骤:step1:导包。step2:添加MyBatis配置文件。step3:写实体类。step4:写映射文件。注:实体类的属性名与表的字段名要求一样。

注:修改配置文件,指定映射文件的位置

(5)调用MyBatis中SqlSession提供的方法来访问数据库。

         注:resultMap解决表的字段名与实体类属性名的对应关系。

MyBatis与spring的整合

(1)Mapper映射器,符合映射文件的接口,MyBatis会自动实现一个符合该接口要求的对象。要求:a、接口方法的名称与映射文件中的sql的id要一样。b、方法的类型参数要与映射文件当中的parameterType一致。

c、方法的返回类型要与映射文件当中的resultType一致。此外,映射文件的命名空间namespace必须等于mapper映射器的全限定名。

(2)MyBatis关联映射:

 

 

 

 

 

 

Struts2回顾

1.strurs2 框架介绍

       Struts2是mvc的主流框架,适合分层开发。框架应用实现不依赖于servlet,使用大量的拦截器来处理用户的请求,属于无侵入式的设计。

2.Struts2的流程原理:

(1)请求先到达Filter的中央处理器

(2)然后为Action创建代理类

(3)将各个服务存放在拦截器中,执行完拦截器后再去执行action类,action类调用service在调用dao

(4)得到记过字符串,创建result对象

(5)转向相映的视图

注:拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转。

       拦截器解析器请求路径,获取Action  的名称,到配置文件中查找action的完整类名,利用类反射机制创建对象,每请求一次就创建一个对象,所以action是多例的,也是线程安全的。

Hibernate(直译:冬眠)

不用写sql

ORM:对象映射关系,将对象映射到关系型数据库中。

Hibernate是一个轻量级的ORM框架。

ORMapping基本对应规则:

(1)类跟表相对应

(2)类的属性跟表的字段想对应

(3)类的实例与表的某一条记录相对应

(4)一个类可以对应多个表,一个表也可以对应多个类

(5)DB中的表可以没有主键,但是Object中必须设置主键字段

(6)DB中表与表之间的关系(如:外键)映射成为Object之间的关系 

(7)Object中属性的个数和名称可以和表中定义的字段个数和名称不一样

Hibernate的缓存机制

       Hibernate是一个持久层框架,经常访问物理数据库,为了降低应用程序对物理数据源的访问频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或者事件会同步缓存和物理数据源的数据。

       Hibernate缓存包括两大类:一级缓存和二级缓存。

       Hibernate一级缓存又称为session的缓存,Session内置不能被卸载,Session的缓存是事务范围的缓存(Session对象的生命周期通常对应一个数据库事务或者一个应用事务)。一级缓存中,持久化类的每个实例都具有唯一的OID.

       Hibernate二级缓存又称为SessionFactory的缓存。由于SessionFactory对象的生命周期和应用程序的整个过程应对,因此Hibernate二级缓存是进程范围或者集成范围的缓存,有可能出现并发的问题,因此需要采取适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。

       Hibernate二级缓存是可选的,是一个可以配置的插件,默认不会启动。

什么样的数据适合存放到第二级缓存中?
1)
很少被修改的数据
2)
不是很重要的数据,允许出现偶尔并发的数据
3)
不会被并发访问的数据
4)
常量数据
不适合存放到第二级缓存的数据?   
1)
经常被修改的数据
2)
绝对不允许出现并发访问的数据,如财务数据,绝对不允许出现并发
3)
与其他应用共享的数据。

 

 

4.Hibernate查找对象如何应用缓存?
Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;

查不到,如果配置了二级缓存,那么从二级缓存中查;

如果都查不到,再查询数据库,把结果按照ID放入到缓存删除、更新、增加数据的时候,同时更新缓存。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值