现在企业开发时,Java所用到的主流框架有哪些?


做开发的就应该知道,要想成为一个合格的Java开发者,语言学两年、框架学一年算是真正上道了。

今天我就带大家看一下目前主流的Java框架。首先是Java祖师爷镇楼!

老牌ORM框架浅说

ORM框架采用元数据来描述对象、关系映射细节,元数据一般采用XML格式,并且存放在专门的文件中,将对象持久化到数据库中。我们可能会写很多数据访问层代码,不断地从数据库保存、删除、读取对象信息,但是往往这些代码是重复的,ORM则可以大大地减少重复性,但是缺点是多表联查的时候就痛苦了。


常见的ORM框架有以下几种,hibernate、ibatis、mybatis等。

struts2框架

struts2是struts的下一代产品,本质上是相当于servlet,是基于mvc设计模式而设计的,本质上是是在struts的基础上加入了webwork的设计哲学,本质上是两个框架的结合,它是一个更加简洁的mvc实现。

强大的表达式语言,基于mvc模式的强大的可变的、可重用的标签API都是其经典优势。

Spring MVC框架

对于初学者来说,这是一个堪称完美的教科书级别的mvc框架,非常标准,Spring框架提供了构建web应用程序的全功能mvc模块,在使用Spring做开发时,你可以选择SpringMVC框架或者选择加入其他的类似Struts2等MVC框架。可以说是味道非常地道、体验非常纯正的servlet系统。


Springboot正在兴起

PHP出现以后,也是在PHP逐渐变得强大以后,人们越来越发现PHP就是为web而生的,为快速开发而生的,用PHP你可以集中精力在业务开发,复杂的业务逻辑交给其他语言。

正是因为PHP的高效,Java逐渐感受到了压力,于是Springboot就应运而生,Springboot就是为了快速开发而生的。

最后说一说框架整合

Struts2+Spring+hibernate逐渐因为Struts的诸多漏洞慢慢地被Spring+SpringMVC+Hibernate/Mybatis替代,并且可以预见的是随着Springboot逐渐走向舞台中央,Springboot+Mybatis会逐渐成为行业主流。

Java是一门强大的语言,曾经辉煌过,在那个年代因为平台无光、可靠安全、多线程、分布式、近乎完全的面向对象,多年雄踞编程语言榜首,在企业级应用、电子商务领域占据着较大优势。


随着PHP、python、C#的成长,加上Oracle公司的作死,动不动打打官司,Java的江湖地位受到了一定的挑战,而且在这个时代Java的优势已经不太明显,但是缺点却越来越突出,未来Java发展如何还真不好说。

作为一个Java出身的程序员,深感叹息,希望甲骨文不要把Java玩死了!我常说Java很垃圾,但JVM却很强大,未来JVM的空间也许会比Java更值得期待,Kotlin就是很好的例子!当然技术终究是要进步的,新技术终归要替代旧技术,知识时间问题而已。毕竟不是所有编程语言都最终像C/C++一样坚挺。


EmacserVimer


我来回答一下,具体用什么框架跟项目规模和大小有很大的关系,下面从单体应用架构和微服务架构两个方面讲一下。

一、单体应用架构

单体应用架构比较简单,普遍用到就是五大框架,包括mvc层、持久层等。由于这五大框架是web开发框架学习的基础,相对于微服务框架比较简单,在此简单介绍一下。

1.Spring:ioc容器和bean管理,解决的是业务逻辑层和其他各层的松耦合问题,也起到纽带和桥梁的作用。

2.Springmvc:目前使用最普遍和最流行的mvc框架。

3.Struts2:也是一款类似于Springmvc功能的mvc框架,它的前身struts1基本没人使用了。struts2相较于springmvc有诸多劣势,包括自身漏洞门问题,慢慢走向没落。现在使用的大部分都是维护的老项目老系统。

4.hibernate:重量级的面向对象的持久层框架,其实它的功能非常强大,由于其自身功能的强大在使用和配置上比较复杂,很多程序员待之以鄙夷。hibernate用于中小系统项目还是很合适的,开发效率较高。

5.mybatis:是一款中低量级别的半自动的持久层框架,由于自身使用的灵活性和易于aql调优,目前还是非常流行的,很多大型项目都用到它。

二、微服务架构

微服务架构相对于单体应用架构复杂些,尤其是微服务架构用到分布式应用架构就更为复杂。

1.springboot:微服务基础框架,由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。特点 :1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6. 绝对没有代码生成和对XML没有要求配置。一句话总结:使用springboot可以高效快速开发web应用,而且可以不使用单体应用开发框架中那些繁杂的xml配置。

2.Dubbo:Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含: 1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

3.SpringCloud:用官方文档的说明:Spring Cloud为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致了锅炉板模式,并且使用Spring Cloud开发人员可以快速地站起来实现这些模式的服务和应用程序。 它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管平台,如Cloud Foundry。

以上就是公司普遍使用的一些框架,当然还有其他的一些框架,比如jFinal、ejb、公司自研封装的一些框架等等,不管用什么框架,技术选型的前提就是满足需求,学习成本低,开发效率高,伸缩性能和可扩展性能要好等等。 以上,你都用过吗?欢迎留言讨论。

【无情怀,不编码。做一个有情怀的码农,虽千万人,吾往矣!】 关注java自学、java技术、求职领域,为你导航领路,指点迷津,分享学习感受和技能经验。欢迎点赞、转发、关注和留言,任何java学习或求职面试问题可以留言私信,有问必答。

一个有情怀的码农


这问题太好答了我也参加

Spring【排行第一,没人敢说第二】

Spring在手天下我有

学Java,肯定必须把spring框架学好。spring真心太强大了。

Spring的子孙特别多,也特别强悍。


SpringMVC必须学会

Spring IOC/DI和AOP原理,非常基础重要的概念,必须搞明白


Spring的生态项目:

Spring Boot:一站式快速开发解决项目。

Spring Cloud:提供对分布式系统的支持。

Spring Data:提供对主流的关系型及NOSQL型数据库的封装支持。

Spring Security:支持系统授权、认证的支持。

Spring Session:提供对session管理的支持。

Spring Batch:提供对大数据的批处理简化处理优化的支持。

Spring Social:提供对社交网络API的集成,如FACEBOOK、新浪微博等。

Spring AMQP:提供对AMQP的消息支持。

Spring LDAP:提供并简化使用LDAP的支持。

等等..............


Spring【排行第一】

Ibatis/mybatis

互联网公司的首选 Ibatis/mybatis

Ibatis是开源软件组织Apache推出的一种轻量级的对象关系映射(ORM)框架

ibatis3.*版本以后正式改名为mybaits,它也从apache转到了google code下

框架套餐【最常见的】

Spring+SpringMVC+Mybatis 【很基础的框架】

此套餐学会学明白了,其他套餐都可以放心吃下。

很多IT公司,会在自己公司框架中定制spring,如阿里、华为、腾讯,人家都把spring功能定制化,但底层核心还是spring的,所以spring基础必须掌握。

高级套餐 Spring+SpringMVC+Mybatis+RPC框架+消息组件等等各种中间件,企业框架都集成了非常多中间件。慢慢学吧,一个个啃下来。


框架套餐。欢迎关注我,一起交流Java技术



程序汪汪


Java比较常见的主流框架:

  • SpringMVC+Spring+MyBatis
  • SpringMVC+Struts2+Hibernate

  • Springboot+MyBatis

Springboot比较易用,不需要配置,但追求完美还是用SSM的框架比较好。SSH是比较重量级的因为Hibernate是重量级SQL框架,而MyBatis比较轻量级。现在SSH用的比较少了,更多的是SSM以及Spring这些。


常见主流框架可以到相关的网站上去了解一下Java相关的开发岗位,都有详细的任职要求说明,这些都是企业常见的,更符合企业的需求,然后查缺补漏,进行系统的学习。


当然了,除了框架之外,基础的东西也是需要进行夯实的。学习Java的时候是在“如鹏网”上学习的,有网络的地方就可以学习,根据自己的时间来灵活安排学习进度,每个章节的后面都有相应的练习题和面试口才题,需要通过录音的方式来进行提交,有新的课程更新了,也是可以继续来学习的。这些都是需要掌握的,可以作为参考。


如果再会一些比较新的技术就更不错了,比如说:分布式、设计模式、前端技术、网络支付、全文搜索引擎、Docker、WebService等内容。

2、NoSQL

3、设计模式

4、分布式技术

5.综合项目——综合应用提高班的技术开发一个基于微服务架构的移动商城系统。


分享到:


相關文章: