精华内容
下载资源
问答
  • JAVA主流框架

    千次阅读 2019-07-30 20:35:33
    Hibernate 在使用JDBC做数据库相关功能...1.将对数据库的操作转换为对Java对象的操作,从而简化开发。通过修改一个“持久化”对象的属性从而修改数据库表中对应的记录数据。 2.提供线程和进程两个级别的缓存提升...

    Hibernate

    在使用JDBC做数据库相关功能开发会做很多重复性的工作,比如创建连接,关闭连接,把字段逐一映射到属性中。 Hibernate把这一切都封装起来了,使得数据库访问变得轻松而简单,代码也更加容易维护。 

    特点

    1.将对数据库的操作转换为对Java对象的操作,从而简化开发。通过修改一个“持久化”对象的属性从而修改数据库表中对应的记录数据。

    2.提供线程和进程两个级别的缓存提升应用程序性能。

    3.有丰富的映射方式将Java对象之间的关系转换为数据库表之间的关系。

    4.屏蔽不同数据库实现之间的差异。在Hibernate中只需要通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句。

    5.非侵入式:Hibernate不要求持久化类实现任何接口或继承任何类,POJO即可。

    优点

    1.封装了jdbc,简化了很多重复性代码。

    2.简化了DAO层编码工作,使开发更对象化了。

    3.移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。

    4.支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。

    缺点

    1.由于对持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活使用JDBC的原生SQL,Hibernate封装了JDBC,所以没有JDBC直接访问数据库效率高。要使用数据库的特定优化机制的时候,不适合用Hibernate
    2.框架中使用ORM原则,导致配置过于复杂,一旦遇到大型项目,比如300张表以上,配置文件和内容是非常庞大的,另外,DTO满天飞,性能和维护问题随之而来
    3.如果项目中各个表中关系复杂,表之间的关系很多,在很多地方把lazy都设置false,会导致数据查询和加载很慢,尤其是级联查询的时候。
    4.Hibernate在批量数据处理时有弱势,对于批量的修改,删除,不适合用Hibernate,这也是ORM框架的弱点

    Struts2

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

    优点

     1.实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。

     2.丰富的标签库,大大提高了开发的效率。

    3.Struts2提供丰富的拦截器实现。

    4.通过配置文件,就可以掌握整个系统各个部分之间的关系。

    5.异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。

    6.Struts2的可扩展性高。Struts2的核心jar包中由一个struts-default.xml文件,在该文件中设置了一些默认的bean,resultType类型,默认拦截器栈等,所有这些默认设置,用户都可以利用配置文件更改,可以更改为自己开发的bean,resulttype等。因此用户开发了插件的话只要很简单的配置就可以很容易的和Struts2框架融合,这实现了框架对插件的可插拔的特性。

    7.面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用,拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个、Action中就可以。

    缺点

    (1)Struts2中Action中取得从jsp中传过来的参数时还是有点麻烦。可以为Struts2的Action中的属性配置上Getter和Setter方法,通过默认拦截器,就可以将请求参数设置到这些属性中。如果用这种方式,当请求参数很多时,Action类就会被这些表单属性弄的很臃肿,让人感觉会很乱。还有Action中的属性不但可以用来获得请求参数还可以输出到Jsp中,这样就会更乱。假设从JSP1中获得了参数money=100000,但是这个Action还要输出到JSP2中,但是输出的格式却不同,money=100,000,这样这个Action中的money中的值就变了。

    (2) 校验还是感觉比较繁琐,感觉太烦乱,也太细化了,如果校验出错的只能给用户提示一些信息。如果有多个字段,每个字段出错时返回到不同的画面,这个功能在Strut2框架下借助框架提供的校验逻辑就不容易实现。

    (3) 安全性有待提高。Struts2曝出2个高危安全漏洞,一个是使用缩写的导航参数前缀时的远程代码执行漏洞,另一个是使用缩写的重定向参数前缀时的开放式重定向漏洞。这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。

    Spring

    Spring是一个基于IOC和AOP的结构J2EE系统的框架 
    IOC 反转控制 是Spring的基础,Inversion Of Control 
    简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象
    DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。

    优点

    1.JAVA EE应该更加容易使用。

    2.面向对象的设计比任何实现技术(比如JAVA EE)都重要。

    3.面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度?)

    4.代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。

    5.JavaBean提供了应用程序配置的最好方法。

    6.在Java中,已检查异常(Checked exception)被过度使用。框架不应该迫使你捕获不能恢复的异常。

    缺点

    1. 中断了应用程序的逻辑,使代码变得不完整,不直观。此时单从Source无法完全把握应用的所有行为。

    2. 将原本应该代码化的逻辑配置化,增加了出错的机会以及额外的负担。

    3. 时光倒退,失去了IDE的支持。在目前IDE功能日益强大的时代,以往代码重构等让人头痛的举动越来越容易。而且IDE还提供了诸多强大的辅助功能,使得编程的门槛降低很多。通常来说,维护代码要比维护配置文件,或者配置文件+代码的混合体要容易的多。

    4. 调试阶段不直观,后期的bug对应阶段,不容易判断问题所在

    Mybatis

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录

    优点

    1.便于维护管理,不用在java代码中找这些语句

    2.用标签代替编写逻辑代码

    3.保证名称相同,配置好映射关系即可自动映射或者,不配置映射关系,通过配置列名=字段名也可完成自动映射

    4.接近JDBC,比较灵活

    缺点

    1. JDBC方式可以用用打断点的方式调试,但是Mybatis不能,需要通过log4j日志输出日志信息帮助调试,然后在配置文件中修改

    2.拼接复杂SQL语句时,没有代码灵活,拼写比较复杂。不要使用变通的手段来应对这种复杂的语句

    3.对开发人员所写的SQL依赖很强

    4.对SQL语句依赖程度很高;并且属于半自动,数据库移植比较麻烦,比如mysql数据库编程Oracle数据库,部分的sql语句需要调整

    展开全文
  • Java目前主流框架

    千次阅读 2019-01-08 09:56:15
    Hibernate 是一种ORM框架,全称为 Object-Relative Database-Mapping,在Java对象与关系型数据库之间建立某种映射,以实现直接存取Java对象(POJO)。ORM框架是一种不同与MVC的另一种思想框架,适用范围也与MVC截然...

    成熟的框架介绍


    Hibernate 框架
    Hibernate 是一种ORM框架,全称为 Object-Relative Database-Mapping,在Java对象与关系型数据库之间建立某种映射,以实现直接存取Java对象(POJO)。ORM框架是一种不同与MVC的另一种思想框架,适用范围也与MVC截然不同。
    使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。
    这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。

    Struts2框架
    本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
    Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架
    Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架。 Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变更和可重用的基于MVC模式的标签API, Struts2充分利用了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。

    Struts 框架(目前已淘汰)
    为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行<%%>包围的Java代码了。 可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。

    MyBatis 框架
    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

    Spring 框架
    调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。为此,出现Spring框架。
    Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转

    spring MVC 框架
    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
    它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具有的优势。而且框架本身有代码,看起来容易理解。Data Access Objects(DAOs)。


    正在兴起的框架


    Jersey 框架
    Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。与Struts类似,它同样可以和hibernate,spring框架整合。
    由于Struts2+hibernate+spring整合在市场的占有率太高,所以很少一部分人去关注Jersey。所以网上有关于Jersey的介绍很少。但是它确实是一个非常不错的框架。对于请求式服务,对于GET,DELETE请求,你甚至只需要给出一个URI即可完成操作。
    举个简单的例子:如果你想获得服务器数据库中的所有数据;那么你可以在浏览器或者利用Ajax的GET方法,将路径设置好;例如:localhost:8080/Student(项目名称)/studentinfo(项目服务总体前缀)/student(处理student对象的签注)/getStudentInfo(最后前缀)。这样就可以获取所有学生信息。你可以选择GET获取的数据的返回类型:JSON,XML,TEXT_HTML(String)…获取之后,你可以通过JS将这些数据塞到html或者jsp页面上。

    springboot 框架
    springboot 框架,被称作一栈式解决方案。比较轻量,也是当前微服务下的趋势;springboot本身就是构建与spring之上,各种思想和特性无需多说,去掉了spring繁琐的配置,简化了原有spring开发的流程,提供了各种实用的特性如metric,actuctor等等;最重要的是springboot附带了整个springcloud生态。两个框架对你解决大,中,小项目都没任何问题

    play 框架

    play可能更加偏向于scala点,本身轻量性能高,随着逐步的优化易用性以及扩展性都变得越来越好;

    Vue.js 框架
    严格来说这个应该不属于框架, 从组建构造上来讲 是和reactjs 类似的构造UI组件的。 从整体逻辑来讲, 他要解决的是MVVM的VM这个部分, 就是如何把应用程序的model 和 view 联系起来的这个VM(view model) 部分。众所周知, MVC这个design pattern争议大的就是这个C的部分, 所以才有各种MV* 的方案提出。 他使用起来确实比reactjs 简单方便多了。 代码也清晰。借鉴了angularjs的declarative的特点。 另外文档, 例子做的都很漂亮。 上手比较快, 这些都是很好的优点。

    jfinal 框架

    JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。


    框架整合


    最初是Struts+ Spring + Hibernate。

    后来演变为Struts2 + Spring + Hibernate。

    后来随着Spring的强大以及Struts漏洞上的等等问题,演变成为了Spring + SpringMVC + Hibernate/Mybatis 互联网这块比较常见的是Mybatis。

    最近也慢慢演变为了Springboot + Mybatis。

    展开全文
  • Java SSM框架简介

    万次阅读 多人点赞 2019-10-03 22:39:54
    前言:在学习Java SSM框架前,我提前学习了反射、注解和MVC模式,因为它们频繁在SSM框架中被用到,建议大家先弄明白了这些基础知识,再学习SSM框架就很简单了。 Java进阶知识1:反射机制 Java进阶知识2:注解 ...

    前言:在学习Java SSM框架前,我提前学习了反射、注解和MVC模式,因为它们频繁在SSM框架中被用到,建议大家先弄明白了这些基础知识,再学习SSM框架就很简单了。

    Java进阶知识1:反射机制

    Java进阶知识2:注解

    MVC模式的正确理解

    一、Java SSM框架的概念

    Java SSM框架即指Spring+SpringMVC+MyBatis的简称,框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。

    相比于之前的SSH(Spring+Struts+Hibernate),SSM更加轻量化和灵活,是目前业界主流的Java Web开发框架。

    当前2019年10月15日,Spring的最新版本为:5.2.0,而MyBatis最新版本为:3.5.2

    (1)Spring

        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

         Spring就像是整个项目中装配JavaBean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切;而重要功能Aop(面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,在系统的业务流程代码中需要的位置切入这些通用功能代码,以便于减少系统的重复代码,有利于项目未来的可拓展性和可维护性。

    (2)SpringMVC

          Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC把传统的模型层被拆分为了业务层(Service)和数据访问层(DAO,Data Access Object)。在业务层中可以通过 Spring 的声明式事务操作数据访问层,而在业务层上还允许我们访问 NoSQL ,这样就能够满足异军突起的 NoSQL 的使用了,它可以大大提高互联网系统的性能。

         SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作,最终把Model层执行结果返回给用户。SpringMVC相当于SSH框架中struts。

    (3)MyBatis

     MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis ,2013年11月迁移到Github。MyBatis 是一款优秀的Java持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML配置文件或注解,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

        MyBatis是对JDBC的封装,它让数据库底层操作变的透明,属于半自动的ORM(对象关系映射)框架。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

    Mybatis是半自动ORM映射工具,可以自定义高效的SQL语句提升数据库访问的效率。Mybatis是半自动的原因是因为我们要在Mapper文件中手写SQL语句,全自动的ORM(如Hibernate)是不需要手写SQL的。MyBatis可以自定义高效的SQL语句提升数据库访问的效率;而且MyBatis容易掌握,而Hibernate门槛较高。所以我们用Mybatis代替传统的Hibernate。

    二、Java SSM框架的用处

    我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅。另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程序猿可以完全掌控SQL,这会让有数据库经验的程序猿能开发出高效率的SQL语句,而且XML配置管理起来也非常方便。

    我们先了解一下这三个框架分别是干什么的?相信大以前也看过不少这些概念,这里就用大白话来讲:

       SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!!

        Spring:太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。

        MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。第一,它能自由控制sql,这会让有数据库经验的人编写的代码能搞提升数据库访问的效率。第二,它可以使用xml的方式来组织管理我们的sql,因为一般程序出错很多情况下是sql出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的sql。

    为了更加能理解 SSM 处理用户请求的整个过程,下面给出一张 SSM 系统架构图:

     

    三、SSM框架学习路线

    SSM框架自学(一)——Spring学习总结

    SSM框架自学(二)——Spring MVC学习总结

    SSM框架自学(三)——Mybatis学习总结

    SSM框架自学(四)——Maven项目管理工具快速入门

    SSM框架自学(五)——Maven构建SSM项目快速入门

    SSM框架自学(六)——Log4j日志系统工具使用总结

    SSM框架自学(七)——Junit单元测试工具使用总结

    SSM框架自学(八)——SpringMVC如何返回JSON格式的数据

    SSM框架自学(九)——Spring使用注解代替复杂的XML配置文件

    SSM框架高频率面试题(含答案)

    展开全文
  • 随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到了大大的提高,框架这个东西也在应用程序中开始出现,并得到了广泛的使用。所以为大家收集了目前较受欢迎的Java框架。 1、...

    虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇。毫无疑问,Java是目前最热门的编程语言之一。随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到了大大的提高,框架这个东西也在应用程序中开始出现,并得到了广泛的使用。所以为大家收集了目前较受欢迎的Java框架。

    1、SpringMVC

    中国有句俗话叫“姜还是老的辣”,所以SpringMVC虽然发布已有十多年,但仍然老当益壮,以绝对的优势处于领先者的地位。在拥抱完整的MVC框架后,Spring不断发展变化,现在已经成为面向Internet应用程序的全面Java框架,为软件工程师提供了用于Web应用程序开发的强大的工具包和针对安全项目的应用程序配置。作为最受程序员宠爱的一枚,Spring发展良好的生态系统提供了很多附加选项:RESTAPI或SOAPWeb服务,安全性(身份验证和授权,加密)等。另外,很多大型公司都选择使用SpringMVC,所以如果你在使用过程中遇到问题,会有很多技术大牛能够给你解答。

    优点和缺点

    Spring以绝对优势登顶不是没有理由的,它之所以能够成为最知名的Java框架,主要是因为:

    1.使用POJO简化测试数据的注入。

    2.增强的模块化,使代码拥有更好的可读性。

    3.不同模块之间解耦合。

    4.灵活应用依赖注入(DI)。

    虽然SpringMVC有很多文档可供参考,但其对于新手Java开发人员来说学习曲线还是太陡了,在碰到参考文档较少的部分,开发人员可能会出现无从下手的情况。另外,虽然SpringMVC网上的信息比较多,但是版本不同也会有差异。总体来说,SpringMVC是工程师最喜爱的框架之一。

    2、Struts2

    为了更详细地阐述现代软件工程师广泛使用的Java框架,这里千锋武汉Java培训老师为大家介绍ApacheStruts1的后续版本Struts2。Struts2用于构建当代JavaEEWeb应用程序。Apache软件基金会为开发人员提供了一个广泛的工具,用于创建企业级面向Web的应用程序,开发过程的优化贯彻始终,甚至连后期维护也囊括其中,到最终点优化开发过程以及后期维护。如果您在为高负载系统(如广播门户)发愁,那么Struts将会是你的不二选择。

    由于Struts2实现了Action类(普通POJO对象),所以测试编写代码所需的工作量较少。使用框架API,耦合变得更容易,有助于调整拦截器。

    优点和缺点

    Struts2最大的特点是不必重写或实现Action类,同时IT工程师为多个操作创建重复设置代码也不再是一个问题,因为拦截器会处理它。

    Struts最大的缺点就是不够灵活。

    3、Hibernate

    虽然Hibemate不在RebelLabs的排行榜中,但它仍是值得一提的Java框架。这个映射Java框架解决了对象和关系不匹配的问题,采用持续的数据库访问操作来代替高层次的对象处理功能。每个企业的应用程序都是不同的,所以Hibernate配备了一个强大啊的功能套件,帮助后端开发人员微调数据访问层。这是一个高级的ORM框架,允许您对Java对象(实体)执行数据库操作,利用Hibernate缓存将数据从Java环境持久化到数据库是一个持久化的概念。

    优点和缺点

    Hibernate只要对原有代码做一些微小的改动就可以帮助你和任何数据库进行通信,它弥补了对象和关系之间的差距。除了这个优势,它还有:

    1.不管是Oracle,还是Db2亦或是MySQL,Hibernate是独立于DB存在的。

    2.缓存机制对类似查询进行优化。

    3.支持N+1或懒加载。

    尽管Hibernate的优势很多,但是它不允许多个插入,不支持JDBC的一些查询,不适用于表比较少的小规模项目。

    4、JSF

    作为JavaEE的一部分,Oracle支持JavaServerFaces。虽然这不是Java快速开发的最好框架,但是因为Oracle提供了大量的文档所以很容易上手。如果你不离开JavaEE环境,JSF没有外部依赖项,但功能很强大,它拥有的丰富的库和工具(包括一个易于创建用户界面的工具集),无论你的应用程序看起来有多么复杂,它都可以支持。

    优点和缺点

    如上所述,JSF是JavaEE的一个组成部分。因此,开发人员可以利用IDE软件套件以及来自行业领先供应商的高水准的支持。

    但是事情都有两面性,JavaServerFaces太庞大,所以没有Web开发经验或者技术不纯熟的人可能难以掌握。

    5、Vaadin

    Vaadin是在现代开发人员在创建业务应用程序并使用GWT渲染结束网页时必选的流行框架之一。Vaadin利用一个众所周知的基于组件的方法,快速适应浏览器发生的变化,从而减轻开发人员的负担。Vaadin通过传达对浏览器的更改来消除开发人员的负担。丰富的UI组件、各种各样的部件和控件时代程序员能够随时随地构建一个酷炫的应用程序。

    优点和缺点

    在Java或HTML的布局构建中,Vaadin提供了可用的MVC或MVP绑定数据的方法。支持拖放以及其他突出的功能简化了对Java应用程序的单页UI的创建。

    因为Vaadin需要将每个事件回发到服务器,所以或导致移动应用程序的UI迟缓。

    6、GoogleWebToolkit

    GWT是一个允许用户创建和优化复杂的基于Web的应用程序的免费的Java框架。GWT的软件开发套件提供核心JavaAPI和小部件,构建之后就可以编译为JavaScript的应用程序。

    优点和缺点

    使用GoogleWebToolkit,您可以获得单个代码库(Java中的浏览器和服务器端编程),从而简化开发和调试过程。与其他技术的简单集成允许程序员在Web页面中嵌入GWT小部件。在GWT的帮助下还可以自定义窗口小部件功能。

    但是GWT不适用于纯HTML和后期动态内容布局,因此无法满足网页设计师的需求。

    7、Grails

    这个特别的Web框架被认为是可以提高工程师生产力的动态工具。它拥有独树一帜的API实际,合理的默认值以及约定的配置范例。与Java的无缝集成使其成为全世界很多程序员的最佳选择。Grails拥有一系列强大的功能,例如基于Spring的依赖注入和各种插件,同时提供创建现代Web应用程序所需的一切。

    优点和缺点

    Grails可以快速搭建新项目,脚手架为编码人员节省了大量宝贵的时间。Grails拥有一个巨大的库,提供超过900种不同的易于安装的插件。Grails是一个全栈开发的Java框架,它的对象关系映射涵盖了庞大的功能,使其成为一个重量级的软件。

    如何选择合适的Java框架?

    在这些眼花缭乱的流行Java框架中挑选出适合自己的框架不是一项简单的任务,因为每个公司在创建自己的Web应用程序和移动应用程序时都有自己坚持的理念。但是无论你选择哪个框架,它们都应具有以下特点是:易于安装、社区活跃、文档丰富等等。因为项目的依赖类型不同,所以企业在选择时最好选择同一公司或一脉相承的框架;另外,如果现实允许的话,最好选用轻量级的框架来代替重量级框架;最后,企业是一个团队,所以要及时企业的其他同事沟通框架的使用,保证每个员工都能充分利用该框架来创造价值。

    上述就是分享的Java语言2019年受欢迎的7大框架。你想不想也学习一下这个受欢迎的开发语言呢?那就赶快抓紧时间入行吧!

    转载于:https://www.cnblogs.com/CQqf/p/10766735.html

    展开全文
  • Java Web目前主流框架以及正在兴起的框架

    万次阅读 多人点赞 2017-12-18 22:31:05
    Java Web目前主流框架以及正在兴起的框架收集我收集了当前主流的以及正在兴起的JavaWeb框架,以及对框架整合做了简单介绍。
  • 根据RebelLabs,也是在线Java用户组(虚拟JUG)的媒体盟友所进行的调查,2018年最佳Java框架的阵容如下: 这样下来就是SpringMVC+Spring+MyBatis的整合使用。  这里可以学习慕课网的:  搞定Java SSM框架开发:...
  • java 开源框架

    千次阅读 2012-12-13 17:20:33
    Java开源框架集 原文:http://blog.myspace.cn/1305035574/archive/2008/04/03/400694243.aspx   Spring Framework 【Java开源 J2EE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大...
  • Java开源框架

    千次阅读 2013-10-11 23:17:16
    Spring Framework 【Java开源 J2EE框架】  Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Sprin
  • Java Spring 框架详解

    千次阅读 2021-01-11 18:18:02
    它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。 1.1.2 Spring的优点 (1)方便解耦...
  • 各种JAVA开发框架

    千次阅读 2010-01-31 22:01:00
    【IT168 文档】Spring Framework 【Java开源JEE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring...
  • java开源框架

    千次阅读 2012-12-25 15:50:17
    Spring Framework 【Java开源 J2EE框架】  Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的...
  • 常见JAVA框架

    万次阅读 2013-04-12 15:01:15
    Spring Framework 【Java开源JEE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构...
  • 基于Java NIO框架区别对比

    千次阅读 2018-05-23 08:58:08
    通信框架流行基于Java NIO通信框架有Mina、Netty、Grizzly等。接下来说下它们之间的对比。二.它们的出身1、Mina出身于开源界的大牛Apache组织;2、Netty出身于商业开源大亨Jboss;3、Grizzly则出身于土鳖Sun公司。三...
  • Java开源框架集(全)

    千次阅读 2015-11-09 15:32:58
    Spring Framework 【Java开源 J2EE框架】  Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础...
  • 前端三大主流框架

    2019-11-06 14:05:31
    当前,三大主流前端框架分别是React、Vue、Angular这三个框架。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站, 并于 2013年 5 月开源。React 拥有较高的性能,代码逻辑非常简单,越来越多的人已...
  • java流行框架有哪些?

    千次阅读 2015-06-25 08:39:53
    常见JAVA框架 Spring Framework 【Java开源JEE框架】 技术资料下载地址:http://pan.baidu.com/s/1mgiSTYw Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法...
  • 谈起当前流行的Java开发框架,笔者认为在Java中框架确实很多,以前流行SSH,现在如果开发管理系统一般用SSM。在谈论框架时首先要明白框架的存在有什么意义?说起一套软件开发得好不好,很重要的一个判断依据就是是否...
  • java开源框架简介

    千次阅读 2008-01-22 10:41:00
    Spring Framework 【Java开源JEE框架】Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于...
  • Java爬虫框架WebMagic的使用总结

    万次阅读 2016-08-15 20:18:59
    最近,项目做一个公司新闻网站,分为PC&移动端(h5),数据来源是从HSZX与huanqiu2个网站爬取,主要使用java编写的WebMagic作为爬虫框架,数据分为批量抓取、增量抓取,批量抓当前所有历史数据,增量需要每10分钟定时...
  • Java常用开源框架

    千次阅读 2018-04-15 12:28:12
      JAVA中间件:包括服务框架中间件:解决集群间的访问通信问题。消息中间件:解决应用之间的消息传递、解耦、异步的问题。数据访问中间件:解决应用访问数据库的共性问题。   分布式系统:一定是有多个节点...
  • 开源Java EE框架 JBoss Seam 详细介绍

    千次阅读 2016-06-25 08:24:09
    摘要:JBoss Seam是“Java EE 5.0的一个轻量级的框架”。这是什么意思?难道Java EE(Enterprise Edition) 5.0本身不是一套“框架吗”?为什么在官方规范之外,还需要另外一个框架?好吧,我们就将seam看作是本应该被...
  • 在这个思想的指导下,结合当前流行的框架与技术,开发实现了一个面向项目的集成框架,命名为IOIF。IOIF避免了对某个项目的依赖,使之成为一个主流B/S与C/S项目通用的框架。IOIF的提出是为了避免每个项目重新考虑与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,315
精华内容 18,926
关键字:

当前java主流框架

java 订阅