控制反转:spring通过控制反转实现松耦合 。对象们给他们依赖,而不是对象本身,方便解耦,简化开发 。
方便程序测试:spring提供了Junit4的支持,可以通过注解方便的测试spring程序 。
降低java EE API的使用难度:spring对java EE开发中非常难用的一些API(比如JDBC),都提供了封装,使这些API应用难度大大降低 。
方便集成各种优秀框架:spring内部提供了对各种优秀框架(如Struts、mybatis)的直接支持 。
支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无须手动编程 。
(4)spring的缺点
依赖反射,反射影响进程 。
太过于依赖设计模式 。
控制器过于灵活 。
不支持分布式应用 。
Spring常用注解(绝对经典)
3、hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任 。
(2)hibernate的核心构成和执行流程图
(3)hibernate的优点
对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码 。
Hibernate是一个优秀的ORM实现 。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了 。
透明持久化(persistent)带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短 。这些对象可能是普通的javabeans/POJO,(POJO概念,plain ordinary java object,简单的java对象,可以简单理解为简单的实体类entity 。)这个对象没有实现第三方框架或接口,唯一特殊的是他们正与session关联 。一旦这个session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用 。
事务transaction应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短 。它通过抽象将应用从底层具体的JDBC、JTA(java transaction API,JTA允许应用程序执行分布式事务处理,在两个或多个网络计算机资源访问并且更新数据,JDBC驱动程序的JTA支持极大地增强了数据访问能力)以及CORBA(公用对象请求代理程序体系结构,common object request broker architecture,简而言之,CORB允许应用程序和其它的应用程序通讯)事务隔离开 。某些情况下,一个session之内可能包含多个transaction对象,事务边界的开启与关闭时必不可少的 。
它没有侵入性,是轻量级框架 。
移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码 。
缓存机制,提供一级缓存和二级缓存 。
一级缓存:是session级别的缓存,一个session做了一个查询操作,它会把这个操作的结果放到一级缓存中,如果短时间内这个session又做了同一个操作,那么hibernate直接从一级缓存中拿出,而不会去连数据库取数据 。
二级缓存:是sessionFactory级别的缓存,就是查询的时候会把结果缓存到二级缓存中,如果同一个sessionFactory创建的某个session执行了相同的操作,hibernate就会从二级缓存中拿出结果,而不会再去连接数据库 。
(4)hibernate的缺点
持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活应用原生SQL 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 开发最全面的流程分享 o2o购物平台开发
- 附讲解和思维导图 java代码大全及详解
- java类和对象的基本概念 java中的对象是什么
- 服务地图功能的开发心得 服务地图怎么做
- 华为应用市场开发者平台 华为云测开发者联盟
- c开发环境和开发工具了解 c开发环境和开发工具
- java程序入门及开发环境 java官方网站是多少
- mysql创建数据库步骤 java链接mysql数据库的详细步骤
- android开发环境配置 android环境搭建要那两个软件
- 常用的ftp服务器软件 ftp服务器工具有哪些