Java常用框架及介绍

一 、SpringMVC
SpringMVC是一种轻量级Web框架,即使用了MVC架构模式的思想,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发
使用SpringMVC的拦截器实现防止SQL注入
MVC:
1.模型(Model )封装了应用程序的数据和一般他们会组成的POJO。
2.视图(View)是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。
3.控制器(Controller )负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。

二 、Spring
Spring是一款轻量级的IOC和AOP容器框架
Spring的优点:
1.控制反转(IOC)也称 依赖注入(DI):依赖对象的创建(new)对象交给spring容器来管理,简单理解就是原本我们去new对象这个操作转给spring容器去执行
2.面向切面(AOP):本质就是拦截器,比如项目中的事务和日志就很好的体现出AOP。在对数据库进行增删改时,都需要先打开事务,增删改之后,则需要提交事务,这时就可以写一个拦截器,而aop的底层就是采用动态代理的前置通知和后置通知,在前置通知打开事务,在后置通知提交事务,在spring.xml中配置通知就好,这样spring的事务管理底层就用到了AOP。
3.spring是一款轻量级的框架,大约只有2MB。
4.集成性:是主流框架ssh,springboot,ssm,radio,springMVC等的集成。
5.spring是一个容器,因为它包含并且管理应用对象的生命周期和配置,比如对象的创建,销毁,回调等。
Spring的3种注入:
1.setter注入:setter注入属性值比较直观和自然,如果依赖关系比较复杂,那么构造注入和会导致构造方法相当庞大,用setter注入更加有效,简洁。
2.构造注入:在构造期间即可创建一个完整、合法的对象,避免了繁琐的setter方法的编写,所有的依赖关系均在构造方法中设定,依赖关系集中体现。
3.接口注入:接口注入因具备侵入性,它要求组件必须与特定的接口相关联,因此这种注入方式基本上已经被遗弃了。

三、Struts2
Struts2是一个基于MVC设计模式的Web应用框架
Struts2的优点:
1.基于MVC架构,框架结构清晰
2.使用OGNL:OGNL可以快速的访问值栈中的数据、调用值栈中对象的方法
3 .拦截器:struts2中的很多特性都是通过拦截器实现的,例如异常处理、文件上传、验证等。拦截器时可配置与重用的
4.多种表现层技术,如:JSP、FreeMarker、Velocity等

四、Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库
hibernate的优点:
1.对JDBC访问数据库的代码进行了封装,简化了数据库访问层繁琐的重复性代码
2.映射的灵活性,它支持各种关系数据库,从一对一到多对多的各种复杂关系
3.非侵入性、移植性会好
4.缓存机制:提供一级缓存和二级缓存
hibernate的缺点:
①. 无法对SQL进行优化
②. 框架中使用ORM原则,导致配置过于复杂
③. 执行效率和原生的JDBC相比偏差:特别是在批量数据处理的时候
④. 不支持批量修改、删除
Hibernate的缓存机制:
1.一级缓存(session级别):hibernate的一级缓存是session级别的,所以如果session关闭后,缓存就没了,此时就会再次发sql去查数据库。
2.二级缓存(sessionFactory级别):因为二级缓存是sessionFactory级别的缓存,我们看到,在配置了二级缓存以后,当我们session关闭以后,我们再去查询对象的时候,此时hibernate首先会去二级缓存中查询是否有该对象,有就不会再发sql了。

五、Mybatis
MyBatis 是一款优秀的持久层框架
1.是一个半自动的orm框架,需要手动编写代码,避免不需要的查询,提高系统性能,而hibernate自动生成代码,有些语句较为繁琐,会多消耗一些性能。
2.MyBatis提供了查询缓存来缓存数据,以提高查询的性能,MyBatis的缓存分为一级缓存和二级缓存:
一级缓存:SqlSession级别的缓存,基于HashMap本地缓存,当同一个sqlSession执行两次相同的SQL语句时,第一次执行完后会将数据库中查询到的结果写到缓存,第二次查询时直接从缓冲中读取不经过数据库了。一级缓存默认时开启的。
二级缓存:mapper级别的缓存,也是基于hashmap本地缓存,不同的sqlSession两次执行相同的namespace下的sql语句,第二次查询就不会进行数据库了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值