扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
java常用开源框架如下:\x0d\x0a1.Spring Framework 【Java开源JEE框架】\x0d\x0a\x0d\x0aSpring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 \x0d\x0a\x0d\x0a2.WebWork 【Java开源Web开发框架】\x0d\x0a\x0d\x0aWebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。\x0d\x0a\x0d\x0a3.Struts 【Java开源Web开发框架】\x0d\x0a\x0d\x0aStruts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中\x0d\x0a\x0d\x0a4.Hibernate 【Java开源持久层框架】\x0d\x0a\x0d\x0aHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合\x0d\x0a\x0d\x0a5.Quartz 【Java开源调度框架】\x0d\x0a\x0d\x0aQuartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。\x0d\x0a\x0d\x0a6.Velocity 【Java开源模板引擎】\x0d\x0a\x0d\x0aVelocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 \x0d\x0a\x0d\x0a7.IBATIS 【Java开源持久层框架】\x0d\x0a\x0d\x0a使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了祁东免费建站欢迎大家使用!
希望还有人关注这个问题。\x0d\x0a我们常常提到java EE的三层或者四层结构。\x0d\x0a四层架构:\x0d\x0a展示层(web层)、业务逻辑层、数据访问层、信息资源层\x0d\x0a四层架构在是开发企业应用时使用的非常经典的划分模式。\x0d\x0aweb层负责前端展示和用户请求的处理。mvc是一个设计模式,主要用户构建用户界面,目的是把展示逻辑和逻辑分离。web层通常会使用MVC模式进行构建,经常使用的mvc框架包括spring mvc,struts等,都是在web层或者展示层使用的。\x0d\x0a业务逻辑层一般应用中会有一层service抽象,实现核心业务逻辑,事务控制也在这一层实现。\x0d\x0a数据访问层也即dao层,重点负责数据库访问,完成持久化功能。\x0d\x0a信息资源层主要服务资源的存储。\x0d\x0a所以mvc和四层(三层)结构有关系,四层架构是应用的体系(分层)结构,描述了整个应用的一个完整的划分,而mvc是一个设计模式,通常会用于四层架构的展示层的构建上。希望我能讲清楚。
持久层设计的目标包括:
- 数据存储逻辑的分离,提供抽象化的数据访问接口。
- 数据访问底层实现的分离,可以在不修改代码的情况下切换底层实现。
- 资源管理和调度的分离,在数据访问层实现统一的资源调度(如缓存机制)。
- 数据抽象,提供更面向对象的数据操作。
持久层框架有:
- Hibernate
- MyBatis
- TopLink
- Guzz
- jOOQ
- Spring Data
- ActiveJDBC
MVC就是Model-View-Control
(控制器Controller)-
负责转发请求,对请求进行处理。
(视图View)
-
界面设计人员进行图形界面设计。
(模型Model)
-
程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
基本上Controller跟业务层差不多
View就是表现层,Model就是持久层
基本的思想就是软件各个模块之间尽量松耦合,通过接口通讯,比如你从数据库中获取数据都是通过一个固定的接口,只要接口不变,在修改底层跟数据库通讯的代码的时候(比如你之前用MySQL,现在想用SQL
Server了)就不会影响到业务层跟表现层。同时各个部分逻辑更加清晰。
其实很多人在选择技术框架往往都会采用自己最熟悉的那个,
但细细比较,ibatis与hibernate的差异还是比较大的。
ibatis 最大的优点是将sql与程序代码做了分离,于是数据库的落地操作与程序逻辑可以解耦;
分工上可更加明确,而对于sql的调试及优化也更加直接高效。
然而缺点也很明显,不支持orm,于是大量的数据库sql语句都需要手动编写。
hibernate对orm的支持已经相当完善且稳定,普通的增删改查操作已经不需要通过sql进行实现,
而hql及nativeSQL的支持也让hibernate极尽完美。
但美中不足的还是在性能优化问题方面(比如hibernate n+1查询效率问题),在调试sql性能方面不是很方便;对于仅熟悉sql的工程师来说,会多一些学习成本。
值得一提的是hql和 JPA的支持使hibernate具有良好的可移植性,一套持久层可用于多种数据库,当系统数据库进行升级或变更时,这个好处就显现出来了。
综上,在开发效率上推崇使用hibernate。互联网开发的一个特性是快,快速变更迭代,使用hibernate其实更能适应这种节奏,而关于性能调优问题是可以弥补的:
使用群体庞大,技术社区也非常活跃,可以从中获得各种问题的答案;
如若应用产品发展给力,性能问题自然接踵而来,此时可能并非单单关系型数据库可以支撑的了,可能转向其他解决方案如nosql,于是此时hibernate也就已经完成了它的使命~~
持久层,又叫数据访问层。是和数据库直接打交道的层。
所有增删改查的操作全在这个层里
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流