java开发常用框架总结

java开发常用框架总结

(一)Spring

Spring是什么及Spring的优点
Spring:是一个轻量级的IOC(控制反转)和AOP(面向切面编程)容器框架
Spring的优点:

  1. Spring是非侵入式的,不是必须依赖其他接口
  2. Spring是个容器,包含并管理应用对象的生命周期和配置,就是有很多个Bean配置
  3. Spring对主流的框架提供了很好的集成支持,比如和Hibernate SpringMVC等框架的集成
  4. Spring提供对事务的管理,从而提供了更好的复用

对IOC和AOP的理解
IOC:控制反转,又称DI(依赖注入),是一种设计思想

  1. 控制权由java对象转到容器配置(bean配置)
  2. 依赖注入又分为三种:
    (1) setter注入:bean的Property注入
    (2) 构造注入:bean的constructor-arg注入
    (3) 接口注入:会使类之间形成一定的依赖关系,具有侵入性,所以已不用

在spring中的作用:解决对象之间的依赖,降低耦合度

AOP:面向切面编程,本质就是拦截器,比如项目中的事务和日志
(1) 事务:对数据库编辑时需要开启事务(底层本质是通知代理)
(2) 日志:权限,什么用户做了什么事

什么是Spring的自动装配?并解释一下自动装配的各种模式
Spring的自动装配:IOC容器自动建立JavaBean之间的关联关系,无需配置
三种模式:

  1. 根据属性名称自动装配autowire=”byName”
  2. 根据数据类型自动装配autowire=”byType”
  3. 根据构造方法自动装配autowire=”constructor”

在spring中注入null或者空字符串
注入null值:

<property name=”email”><null/></property>

注入空字符串:

<property name=”email” value=””></property>

Spring的事务管理
Spring的事务管理:一个操作要么全部完成,要么全部不起作用
事务的传播级别:定义的是事务的控制范围,常用的就是PROPAGATION_REQUIRED
事务的隔离级别:定义的是事务在数据库读写方面的控制范围
事务的配置有两种方式:注解式事务和声明式事务

(二)SpringMVC

SpringMVC的工作流程

  1. 客户端通过url发送请求至DispatcherServlet
  2. DispatcherServlet收到请求调用HandlerMapping处理映射器
  3. 处理映射器找到具体的处理器,生成处理器对象返回给DispatcherServlet
  4. DispatcherServlet调用HandlerAdapter处理器适配器
  5. HandlerAdapter经过适配调用具体的处理器Controller
  6. Controller进行业务逻辑处理后,会返回一个ModelAndView
  7. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
  8. DispatcherServlet将ModelAndView传给ViewResolver视图解析器
  9. ViewResolver解析后返回具体的View
  10. DispatcherServlet根据View进行渲染视图并响应用户

springmvc怎么防止SQL注入
使用SpringMVC的拦截器实现防止SQL注入

(三)MyBatis

mybatis的缓存机制
MyBatis:提供了查询缓存来缓存数据,以提高查询的性能。
MyBatis的缓存分为两级:一级缓存、二级缓存
一级缓存(默认开启):SqlSession级别的缓存,基于HashMap本地缓存,缓存的数据只在SqlSession内有效。第一次执行查询的结果写到缓存,第二次查询时直接在缓存中查询就不经过数据库。
二级缓存:mapper级别的缓存,也是基于hashmap本地缓存。sessionFactory(可以包含有有多个session),一个session用,sessionFactory里其他的session也可以用

#{}和${}区别是什么
#{}:参数占位符,默认自带单引号
${}:变量占位符(取值符)

(四)Struts2

Struts2的工作流程

  1. 请求发送给StrutsPrepareAndExecuteFilter
  2. StrutsPrepareAndExecuteFilter判定该请求是否是一个Struts2请求
  3. 若该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy
  4. ActionProxy创建一个ActionInvocation的实例,并进行初始化
  5. ActionInvocation实例在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用
  6. Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到相对应的返回结果,调用结果的execute方法。
  7. 执行各个拦截器invocation.invoke()之后的代码
  8. 把结果发送到客户端

Struts2优点

  1. 基于MVC架构,框架结构清晰
  2. 使用OGNL表达式,OGNL可以快速的访问值栈中的数据、调用值栈中对象的方法
  3. 提供了丰富的拦截器实现
  4. 多种表现层技术

Struts2拦截器和过滤器的区别

Struts2拦截器过滤器
不依赖于Servlet容器依赖于Servlet容器
只对Action请求起作用对所有的请求起作用
不可以访问ActionContext可以访问ActionContext
只在初始化被调用一次可以多次调用
(五)Hibernate

Hibernate的工作原理

  1. 通过Configuration读取并解析hibernate.cfg.xml配置文件
  2. 由hibernate.cfg.xml中的读取并解析映射文件
  3. 通过config.buildSessionFactory创建sessionFactory
  4. 通过sessionFactory.openSession获取session
  5. 通过session.beginTransaction开启事务
  6. 操作数据
  7. 提交事务
  8. 关闭session和sessionFactory

Hibernate的优缺点
优:

  1. 对数据库的代码进行了封装,简化了访问层重复性的代码
  2. 映射的灵活性,支持各种关系数据库,从一对一到多对多的各种复杂关系
  3. 非侵入性、移植性好
  4. 缓存机制:提供一级缓存和二级缓存

缺:

  1. 无法对SQL进行优化
  2. 配置文件复杂
  3. 不适于复杂关系的数据表维护
  4. 批量操作上的弱势

Hibernate中Load()和get()区别

Load()get()
检索不到结果nullObjectNotFoundException异常
检索机制支持延迟加载(懒加载)不支持延迟加载
(六)框架对比

Springmvc与Struts2区别

SpringmvcStruts2
人口ServletFilter
开发方式基于方法开发基于类开发
开发效率和性能较Struts2快较Springmvc慢
OGNL表达式较慢较快
集成ajax只需一个注解安装插件或者自己写代码

Hibernate与mybatis区别

Hibernatemybatis
开发效率全自动化,sql语句已被封装,半自动化,sql需要手工完成,稍微繁琐
SQL优化自动生成SQL,有些语句较为繁琐,会多消耗一些性能手动编写SQL,可以避免不需要的查询,提高系统性能
对象管理完整的ORM框架,只需管理对象自行管理映射关系
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值