作为一名 Java 程序员,接触到的框架、软件、中间件肯定不会少,并且升级换代比较频繁,可能三五年就会淘汰一批,虽然有些框架看似“经久不衰”,比如很多年前非常流行的 SHH 中就有 Spring,但其实 Spring 早期和现在的版本,使用差异也挺大的。
我就说一说我目前用到的技术栈,以及我对 Java 框架学习的路线思考,大家可以参考参考。
01. 基础
在正式说之前,我还是要啰嗦一句,就是在学习这些 Java 框架的同时,也不要放松对算法、数据结构、网络、Java 基础知识的学习,框架变化的很快,但是这些基础知识会一直伴随着我们。
02. Java 框架
我们现在绝大部分项目,都是基于 Spring Boot 开发的,所以我建议可以先学习 Spring 、Spring MVC、Spring Boot 这几个框架,前两个框架是基础,Spring Boot 算是在 Spring 基础之上发展而来的,使用 Spring Boot 可以很方便的与其他常用框架做集成。
大部分 Java 项目都离不开关系型数据库,所以学习学习一个 ORM 框架,可以选择学习 Mybatis 或 Hibernate,在之后,可以了解一下 Spring Data JPA,这个算是对 ORM 框架更高级的封装。
还有一些框架,可能需要根据你的实际情况来选择学习了,比如本地缓存框架可以学习 EhCache,不过更重要的可能会要求你了解什么是缓存、存储淘汰策略等知识。
在网上,可能就是现在比较流行的分布式服务框架、微服务框架了,现在比较流行的 Spring Cloud 和 Dubbo 了,当然了,它们并不是一个框架,而是一套框架,或者说一套解决方案,如果是个人喜好的话,建议学习 Spring Cloud。
03. 中间件
Java 程序员需要掌握的中间件也不少,重点可以学习 Redis 和 消息队列 MQ。
Redis 是非关系型数据库的一种,适用于很多场景,比如缓存、分布式锁等等,Redis 的相关知识简直就是互联网公司面试的必考题了;
消息队列 MQ 也是应用很广泛的中间件之一,对于系统和系统之间的解耦,流量的限流削峰都起到了非常重要的作用,可以选择 RabbitMQ 或 Kafka 学习一下。
04. 其他
有一些我也不太好分类,就放在其他里面了。
关系型数据库,至少 SQL 和索引要精通一些吧,现在很多公司,特别是互联网公司都会选择 MySQL,那么 MySQL 的一些底层知识最好能有所学习,比如数据库引擎、索引的原理什么的。
其余的还有 Maven 、Git、自动化测试、自动化发布、Docker 等等,最好也能有所了解和应用。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
java开发的框架作用是什么?
开发框架的作用在于隐藏实现细节, 让开发者专注于自身业务,比如spring框架封装了ioc、事物管理、jdbc等等 如果没有框架封装,很难想象你自己实现这些东西有多难受,框架作者的想法是让开发者尽量关注业务逻辑,失效企业高效生产!框架封装了业界通用解决方案,让你不用重做轮子,提高了开发效率!
现在常用的java框架有哪些?
Java作为一种较老的软件编程语言,仍然被广泛使用的原因有很多。首先,一个人在使用Java时所拥有的强大功能足以使它成为他们的主要工具。再加上使用好的Java框架带来的可能性,就可以减少大项目的周转时间。
什么是Java框架
Java框架本身就是一种软件,它可以使使用Java编程变得更容易。它们包含一系列预先编写的代码,您可以将其附加到自己的代码中,从而创建问题的自定义解决方案。
如何在其他框架中挑选出一个框架纯粹是一个偏好问题。在大多数情况下,这可能取决于当你开始新项目时框架提供了多少血肉。视觉方面也发挥了作用。使用框架的UI能有多漂亮?根据您的选择,框架内的工具可以使创建最终用户会喜欢的界面变得简单或几乎不可能。
一个人如何挑选一个单独的框架纯粹是一个优先问题。UI、项目周期、项目预算等等都可以左右选择。
1. Spring
Spring是Java框架的一个非常轻量级的实现,可以用于几乎任何类型的Java项目。它是一个模块化的框架,可以用于项目的任何层次。它之所以引人注目,是因为它不仅可以用于项目的一个层面,还可以用于整个范围。
如果开发者喜欢在MVC架构中工作,那么他肯定会喜欢Spring。该框架还具有良好的安全特性,可以像已经编写的函数一样调用这些特性。这使得像身份验证、验证和验证这样的过程更容易(正确地)包含到任何项目中。Netflix和eBay等公司都使用Spring。
下面是使用Spring Java框架的一些优点
- 它是轻量级的,除了默认的容器之外不需要web服务器。
- 它支持向后兼容性。
- 它具有注释风格的配置兼容性。
2. Hibernate
Hibernate是一个对象关系映射(ORM)框架,它使公共数据处理不匹配情况成为过去。如果您总是使用关系数据库,那么Hibernate ORM框架可以很容易地成为您的最佳选择。
该框架具有连接范式差异的数据处理能力。像IBM和Dell这样的公司已经在他们的web应用程序中使用了Hibernate框架。
使用Hibernate的优点包括以下几点
- 通过少量的编码就可以进行强大的数据操作。
- 它非常适合同时要求高生产力和可移植性的oop类型的项目。
- Hibernate是开源的。
3. JSF (JavaServer Faces)
对于后端开发人员来说,正确处理复杂应用程序的前端通常是一项艰巨的任务。这就是JSF派上用场的地方。
这个oracle构建的稳定框架附带了一个基于组件的MVC环境,用于为Java应用程序创建漂亮的界面。它充满了库,允许开发人员在不引入其他框架的情况下对前端进行试验。
使用JSF的典型优势包括但不限于以下方面
- JSF是构成Java 2E的一大块内容。它将继续存在,并得到大量支持。
- 后端开发人员可以使用大量的前端工具,而无需编写太多代码。
4. GWT (Google Web Toolkit)
正如谷歌产品所期望的那样,GWT是开源的。许多开发人员从GWT开始工作的主要原因是,在不了解前端脚本语言的情况下,很容易创建漂亮的ui。它基本上把Java代码转换成浏览器友好的包。
Web应用如Blogger、谷歌Analytics和谷歌Adsense都是使用Java和GWT框架构建的。它具有完整的特性,并得到了大量致力于该框架的开发人员的支持,这使得它非常适合于对规模敏感的应用程序开发。
下面是使用GWT的一些优点
- 它在后端开发和前端开发之间架起了桥梁。
- 在在线部署应用程序时,跨浏览器的兼容性非常方便。
- 谷歌api使用GWT和boy更容易实现,如果有很多的话。
5. Struts (The Later Version)
Struts是一个apache运行的企业级框架,非常适合web开发人员。它功能丰富,有两个版本:Struts 1和Struts 2。使用最广泛的是Struts 2,它基本上扩展了第一个版本的所有OpenSymphony web框架工具。
这意味着您可以应用诸如Ruby和新的JavaScript框架等新技术来扩展Java应用程序的功能。
使用Struts Java框架的有趣优势包括以下内容
- Struts可以无缝地适应其他框架。
- 您可以使用您已经使用的功能,并扩展Struts中已经使用的功能。
- 您将大大减少开发工作和所需的时间,允许您快速地创建更多的应用程序。
6. Blade
刀片框架是从更大的Let - s刀片项目派生出来的一个非常轻量级的分支。如果你主要是一个单独的程序员(可能是一个自由职业者),速度是最重要的,Blade会让你很快就能开发出应用程序。
当您开始Maven项目时,大部分工作已经完成了。你所要做的就是将当前依赖项添加到配置文件中,这样你就很好了。不需要外部服务器,很像Node.js,在制作刀片框架时从中得到了很多灵感。
以下是使用刀片Java框架的原因
- 您可以添加扩展来加快编码速度。
- Jetty服务器在维护轻量级环境时非常方便。
- 它主要是一个MVC框架。
7. Play
Play框架的创建考虑到了web应用程序开发的便利性。要使用Play,你只需要一个web浏览器,任何文本编辑器,以及命令界面如何在任何操作系统上工作的一些线索。因为它是轻量级的,因为它有无缝的NoSQL兼容性,它对于移动开发也是完美的。
Play框架的创建考虑到了web应用程序开发的便利性。要使用Play,你只需要一个web浏览器,任何文本编辑器,以及命令界面如何在任何操作系统上工作的一些线索。因为它是轻量级的,因为它有无缝的NoSQL兼容性,它对于移动开发也是完美的。
以下是使用Play进行Java开发的原因
- EA、LinkedIn、Verizon和三星等公司都在他们的栈中使用Play。
- Play Java框架默认是restful的。
- 实时开发更改出现在浏览器或测试设备中。
- 云部署选项使分散在世界各地的团队能够参与关键任务项目。
8. Vaadin
有一种观点认为,终端用户很琐碎,他们关心的不是应用程序是如何制作的(代码和汗水),而是它在使用时的外观和感觉。如果您同意这一概念,那么Vaadin Java框架将非常适合您。
有了Vaadin,开发人员可以专注于使用纯Java构建应用程序,而框架将处理接口。这要感谢内置的UI组件,可以像调用函数一样调用它们。像Cordova(一个用于跨平台开发的JavaScript框架)一样,Vaadin允许你使用一个代码基来部署本地移动应用程序,以及web甚至桌面应用程序。
使用Vaadin开发的原因
- 响应性和美观的CSS界面是所有实例的默认设置。
- 有内置的JavaBeans通过注释进行验证。
- 如果数据可视化是一个项目的主要交付成果,Vaadin会让你的结果变得更加出色。
9. Grails
与大多数Apache s产品一样,Grails是开源的,它为Java开发人员提供了很多便利。
首先,它有可以生成HTML代码的标记视图。同样的道理也适用于JSON和XML。Grails周围也有一个活跃的社区。通过使用Groove语言,他们不断开发插件,您可以免费使用这些插件来增强自己的应用程序。为了轻松完成前端开发,GORM(一个数据处理工具包)允许开发人员访问和处理关系和非关系数据集。
下面是应该使用Grails的原因
- 不必尝试一个新的IDE;现在用的任何东西都可以。
- Grails的平缓学习曲线适合时间敏感的项目。
- 文档清晰,课程更新及时,可以立即启动和部署。
10. DropWizard
Dropwizard可能是最不关心那些花哨的功能的,它主要是用来完成任务的。开发人员能够更快地部署,因为不那么复杂,而且有丰富的工具来制作应用程序。它也是Apache 2项目的一部分,使其成为开源的。它也继承了数以百万计的用户和贡献者,这些用户和贡献者使使用Apache项目变得更加愉快。
下面是使用Dropwizard的一些好处
- 每月数千次的pull请求使得每个故障都很容易处理。
- 有关Dropwizard的分步指南,可以使您在一个应用程序中花的时间比在聆听大多数歌曲时所需的时间短-5分钟!
- 在启动时,作为服务器的Jetty从项目内部开始工作。因此,测试变得很容易。