您的位置 首页 java

JavaEE中对SSH框架的深入理解,你get到了吗?

学习SSH框架已经很久了,应用得不是很熟练,但即将面临着找工作,所以整理了这套有关于SSH框架面试可能遇到的问题,希望对大家有所帮助。

1 Struts工作机制?为什么要使用Struts?

Struts的工作流程:

  1. request请求会先通过一系列过滤器,配置PreparedAndExecuteFilter过滤HttpServletRequest请求;
  2. 过滤器根据访问的路径来决定是否调用,若符合,则调用ActionMapper
  3. ActionMapper调用ActionProxy,通过配置文件,找到相应的Action类
  4. Action类实例化一个ActionInvocation的实例,该实例涉及到一系列的拦截器
  5. 一旦方法运行完毕,ActionInvocation根据返回值去配置文件查找要去访问的路径,通常可以是Jsp页面和另一个Action.

为什么要用Struts:

JSP、 Servlet JavaBean 技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。

基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件.

2. 说下Struts的设计模式

  1. MVC模式:将控制层、模型层、视图层分开(配合详细的MVC工作流程,自由发挥);
  2. Treadlocal模式:针对同一个Servlet实例;
  3. 代理模式。

3.Hibernate工作原理及为什么要用?

原理:

  1. 读取并解析配置文件
  2. 读取并解析映射信息,创建 SessionFactory
  3. 打开Sesssion
  4. 创建事务Transcation
  5. 持久化 操作
  6. 提交事务
  7. 关闭Session
  8. 关闭SesstionFactory

为什么要用:

  1. jdbc 访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
  2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
  3. hibernate映射很灵活性。它支持各种关系数据库,从一对一到多对多的各种复杂关系

4.Hibernate与jdbc的联系

  1. hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接,增删改查等功能
  2. hibernate用面向对象的思想,通过配置文件把 pojo 类的字段和数据库的字段关联起来;
  3. 其实hibernate=封装的jdbc+xml文件

5、 说下Hibernate的 缓存 机制

  1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存
  2. 二级缓存:
  • 应用及缓存
  • 分布式缓存

条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据

  • 第三方缓存的实现:使用第三方缓存插件

26、 Hibernate的查询方式

  1. Hibernate特有的语句Hql:
  • 属性查询
  • 参数查询、命名参数查询
  • 关联查询
  • 分页查询
  • 统计函数

2、Criteria查询

3、Sql查询

6.Hibernate与 spring 的联系

Spring实现了程序的全局性管理,包括对Hibernate的管理:

  1. hibernate中的一些对象可以给Spring来管理,让Spring容器来创建hibernate中一些对象实例化。例如:SessionFactory,HibernateTemplate等。
  2. Hibernate本来是对数据库的一些操作,放在DAO层,而Spring给业务层的方法定义了事务,业务层调用DAO层的方法,很好的将Hibernate的操作也加入到事务中来了。

7. 为什么要用spring?

Spring既是一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换不同的接口实现类。

Spring有两大特性: IOC和AOP

IOC:正如单词 倒置 所表明的,IOC 就像反 过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),把对象的创建和维护交由容器管理,从而使类与类之间的依赖关系发生反转,实现解耦合。

AOP: 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务 (比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。

8.项目中如何体现Spring中的切面编程,具体说明。

面向切面编程:主要是横切一个关注点,将一个关注点模块化成一个切面。

具体操作:在切面上声明一个通知(Advice)和切入点(Pointcut);

1.通知(Advice):

通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。

2.连接点(Joinpoint):

程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。

3.切入点(Pointcut)

通知定义了切面要发生的“故事”和时间,那么切入点就定义了“故事”发生的地点,例如某个类或方法的名称,Spring中允许我们方便的用正则表达式来指定

4.切面(Aspect)

通知和切入点共同组成了切面:时间、地点和要发生的“故事”

项目中用到的Spring中的切面编程最多的地方:声明式事务管理。

a、定义一个事务管理器

b、配置事务特性(相当于声明通知。一般在业务层的类的一些方法上定义事务)

c、配置哪些类的哪些方法需要配置事务(相当于切入点。一般是业务类的方法上)

最后,祝愿大家都能够有所进步,早日实现自己的人生理想,走向人生巅峰。

如果您觉得有用的话,记得加个关注(⊙o⊙)哦!!
 

文章来源:智云一二三科技

文章标题:JavaEE中对SSH框架的深入理解,你get到了吗?

文章地址:https://www.zhihuclub.com/184013.shtml

关于作者: 智云科技

热门文章

网站地图