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


自己项目中用的比较多的技术,不仅仅是框架,有下列这些:

1,spring:低侵入式对象管理容器,提供大量注解,方便开发,声明式事务,集成别的框架变得简单!

2,springboot:微服务框架,大量现成库的集合,提供样板化的配置和开发,简化初始构建和开发!


3,springcloud:企业级的微服务框架,集成了大量微服务所需要的并能直接使用的库,比如服务注册与发现,jvm运行参数获取,安全认证,断流器等等!

4,mybatis:持久层框架,轻量级,使sql和代码得到解耦,支持动态sql,所以能支持强大复杂的sql语句,查询结果可与JAVA对象自动映射!

5,druid:连接池,可对sql执行次数,效率等进行监控,可对web请求数等进行监控,提供可视化页面!

6,redis:key-value内存型缓存,可支持多种数据结构的存取,单线程保证线程安全,可用于业务数据加锁,计数,生成全局唯一key,设计秒杀系统等等!


7,docker:微服务持续集成部署的容器首选,占用资源少,可构建一套独立的环境镜像,避免各种环境复杂性的影响!windows可下载boot2docker体验,非常好用!

8,mycat:分库分表框架,有多种分库分表策略以供选择,简单配置即可获得优秀的数据库超量数据读写!

9,mysql:开源关系型数据库,性能强大!

10,mongodb:非关系型数据库,热数据存储在内存中,读取非常快速,文档式存储(大对象尤为方便),支持自动分片!

11,AOP:面向切面编程,可将非业务的公共部分抽出,比如日志,安全验证等等!

12,logback:日志工具,简单配置即可获取全面的日志打印,和日志文件管理!


13,jenkins:持续集成部署工具,通过简单配置,可实现自动部署!

14,ons,rabbitMq等消息组件:异步处理,最终一致性解决方案!

15,nginx:负载均衡的不二之选,极为稳定,性能极好,配置简单,有多种均衡方式可供选择,可轻松实现前端跨域访问!

16,SVN/git:版本控制工具,是团队并行开发的保障!

17,putty/secureCRT:远程连接工具,方便对远程执行命令,查看日志等!

18,javamelody:集成在代码中,可以网页上查看实时内存,CPU使用率等等性能监控指标!jmap:性能分析工具!

以上就是我在工作中,最常用的JAVA开发相关的框架,技术,工具等!

肯定还有什么是你觉得很重要的?烦请补充,谢谢。。。


哎哟JAVA不错哦


做了十多年的Java开发,和大家介绍一下我最近一两年用的比较多的Java框架(包括软件、中间件)。


  • Spring:从刚开始工作的时候就在用;是一个J2EE框架,提供了对IOC的良好支持,也提供了对AOP技术非常好的封装;

  • Spring MVC:也是Spring的一个子项目,实现了MVC设计模式,目标是解耦;

  • MyBatis、Hibernate:两个都是ORM框架,现在Hibernate用的少了;也有用到Spring Data JPA,这个可以看做是更高级的封装,可以通过方法的命名,实现SQL语句;

可以看到,上面就是SSM框架,现在还是比较流行的。

  • Maven:新老项目都是基于Maven构建,它是一个项目管理工具,主要功能有:项目构建;Jar包的依赖管理;版本管理;持续集成等等等等;

  • JUint:单元测试工具;也是老朋友了;测试框架还有不少,比如Spring Test,JMock等等。

  • Shiro、Spring Security:关于安全认证的框架,用于用户身份认证,权限授权、加密、会话管理等;

  • Cxf or Axis:老项目WebService用的比较多一些;历史问题,还是要了解一下;

  • Quartz:定时服务框架,一般都是单机应用;

  • Elastic-job:分布式定时服务框架,当当出品;

  • log4j、logback:各种日志工具;现在会有一些日志采集分析的框架,比如ELK;

  • Ehcache:缓存框架,也都是用于单机项目;

  • Redis:说道缓存,现在更多的使用Memcached、Redis;当然Redis也不局限于缓存;

  • Spring Boot:用于搞定其他框架的一个框架,主要是提供了各种启动器、简化了各种配置、方便和其他框架集成、开发者能够快速上手。

  • Dubbo:一个微服务框架,阿里出品;

  • Spring Cloud:另外一套微服务框架,这个就多了,例如:Config(配置管理中心)、Netflix Eureka(服务注册、服务发现)、Hystrix(断路器,这个官方好像已经不建议使用了,又有新的了)、Feign(声明式服务调用组件)、Ribbon(客户端负载均衡)、Zuul(网关)、Bus(消息总线)等等。

Dubbo or Spring Cloud:这个看公司的技术栈,用到哪个学哪个,都没有用到,建议学Spring Cloud。

  • Restful API、RPC:不同风格的服务;

  • Swagger:Restful API自动生成工具;

  • 消息队列:常用RabbitMQ和Kafka,一种保存消息的容器,也用于系统间解耦;

  • MongoDB:BSON(类似JSON)格式的内存数据库;

  • Zookeeper:一个分布式协调服务;

  • Nginx:或其他负载均衡软件;

  • Docker:容器技术。

我将持续分享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技术



程序汪汪


众所周知,spring框架一定是使用率最高的框架,几乎没有哪家做web系统的不在用spring。它用它依赖注入和面向切面两大强大无比的特性,征服了全世界的开发者。



值得一提的是,下面我提到的一些框架大部分都是可以和spring完美结合使用。

mybatis,orm框架的巅峰,用它把SQL语句语句Java代码完美结合的优势打动了无数程序员。

springmvc,它是spring家族的一员,但是常常被拿出来说,因为它的出现替代了曾经Struts并且使restful风格成为潮流。



springboot,有了它,可以直接将上述三种框架完美融合,配置精简并且内嵌了Tomcat,启动项目只需要简单得点击运行就可以跑起企业级大项目。

此外,比如日志框架slf4j,安全框架shiro,消息队列kafka等等都是很多企业在用的常用框架。


极客宇文氏


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

一、单体应用架构

单体应用架构比较简单,普遍用到就是五大框架,包括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学习或求职面试问题可以留言私信,有问必答。

自学编程的鱼


做开发的就应该知道,要想成为一个合格的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


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.综合项目——综合应用提高班的技术开发一个基于微服务架构的移动商城系统。


不羁放纵爱自由152639911


其实,Spring boot在本质上,就是来回答这个问题的。

Spring boot就是这个世界上最精通企业级java开发(without j2ee)的那批人,通过实践来告诉我们哪些是主流的框架,以及应用它们的最佳实践。

他告诉我们,配置应该怎样管理,日志、持久化、缓存、Web、消息、监控、集成等企业级开发涉及的一切问题的主流框架有哪些,以及他们的推荐,和他们在框架应用中的最佳实践。

这就是Spring boot最大的价值所在,他相当于一本最完备的Java企业开发的教科书。

现在流行微服务,其实这是一个更大的课题,他已经超出了开发的范畴,等大家真正掌握之后,可以学习Spring cloud和devops,微服务在本质地上是一个工程课题。


分享到:


相關文章: