Java开源框架学习初体验

2021年最值得学习的5款开源Java框架 原文链接:https://mp.weixin.qq.com/s/wYFlvg2tomcaOEby8tlPQQ 自从1996年首发,至今25年以来,Java凭借在后端、大数据、机器学习、Web、Android等领域的应用,使其仍然占据着统治地位,长期占据全球最受欢迎编程语言前三名。 在Python、JavaScript等脚本语言中出现了大量的框架、工具包,使得开发变得更轻松、更快。 在Java中亦是如此,它也提供了大量框架,这些框架可以为开发人员提供适合不同领域、不同方向的最佳解决方案,例如,网络开. 阅读详情

        今天看到篇好文章,转来看看……
        在当今企业平台开发中JAVA是领先技术.由于管理需要越来越多的技术,复杂的结构似乎爆炸式的增长,留下了大师们没有银弹的慨叹.这些复杂结构可以从J2EE规范的快速更新中看出来.复杂的规范,协议和技术使我们迫切期望获得更简易的解决方案.
我想大家马上就会想到开源工具.是的,开源框架为我们提供了低成本,高效率,轻量级解决方式.
JAVA是开源项目最集中的阵营,但提到开源项目也是仁者见仁,智者见智,其中苦乐也是如鱼引水,冷暖自知.
开源圣地藏龙卧虎,仿佛那些Java高手如鱼得水,找到了显示才华的沃土.单单MVC框架就是每星期一个,用惯了struts的朋友不知道是什么感想,架构设计人员仿佛有了更多的选择,但实际情况并没有因为开源项目的欣欣向荣而给他们带来鱼和熊掌的无奈.因为程序毕竟是人写的,是给人用的.框架作为工具的可能性远远大于将其作为研究对象.
一大堆英文缩写和概念让我们这些刚接触开源框架的朋友们,确实有些芒刺在背,不知从何入手.其实在真正深入研究这些框架如何工作和如何使用之前,最好先分析一下你要解决的问题到底是什么,用了某个框架之后,或是提高了生产率,或是得到了健壮的框架还是灵活性和可扩展性.而你(或者是你的老板)关注的到底是什么.只有确实解决了问题的方案才是好方案.
我用了两个月左右的时间学习了ant,Junit,Mock,hibernate,webwork,xDoclet和spring等开源"名作",呵呵是不是有些夸张.虽有囫囵吞枣的之嫌,但确实过足了开源瘾,收获不少.个人认为学习开源框架,关键在于领会框架的中心模式.比如struts中的MVC,spring中的DI和hibernate中的ORM是如何体现的.在此感谢夏昕为我们献上的《指南》系列,使我们这些功力尚浅的鸟们认识到了这些名作的闪光之处.
现在我按照表现层,逻辑层,集成层和开发工具的顺序来给大家简单介绍一下这些通用开源框架的特点和我的一些学习心得.
一,STRUTS——我是不是该悄悄地走
面对Struts,我们的心情很复杂,它曾经是开启了我们MVC模式的导师,现在仍稳居国内期望学习Java框架排行榜首位,各大Java培训机构之必备良方.可惜其架构被证明存在缺撼,笔者虽然初识struts时也算倾心,但没过多久便找到了自己的最爱——webwork.关于struts的文章可谓铺天盖地,我就不在次弄斧了.
二,WEBWORK——当你孤单你会想起谁
作为MVC的另一种实现框架,它没有得到先入为主的优势.沉寂了多年的webwork一直延续着自己的梦,相信自己还是有自己的忠实粉丝(fans).的确,我就是webwork的一位忠实fans.虽然学习的时候感觉比struts困难一些,但是每一个单元标题都能紧紧抓住俺的眼球.结果就是她让这样一个追求完美的我移情别恋了.
Webwork最让我着迷的是她的前端数据封装和DI的xwork框架.虽然后者spring更擅长,但是对于初次了解DI的朋友还是推荐xwork,简约而不简单,呵呵.还有就是她的action控制模式很像EJB里的会话门面或无状态会话BEAN.但是她的不简单也有让我为难的时候,是在选择逻辑层框架时,xwork的实现和spring有些重叠,最后自己总结了一下:如果逻辑层足够简单,数据持久化范围也不大的情况下选择xwork,否则选择spring,毕竟spring里集成了hibernate的实现,这样运用hibernate更自然.
支持webwork的开发者们,当你们孤单时,别忘记我们这些忠实的fans,相信你总有灿烂的明天.
三,SPRING——问天下谁与争锋
Java开源社区,自Spring出现以来,可谓名声雀起,其作者接连出书,在诛伐EJB的罪与罚过程中出力不小.在流行的开源框架组合中,Spring往往处于中心地位.加上自身的不断努力,在开源大行其道的JAVA社区大有舍我其谁,君临天下之势.
我感觉其实spring的成功很大程度上还是来源于J2EE的成功,和那些大师们对开发者需求的认识上,毕竟开发者也是人,有谁愿意整天研究那厚厚的J2EE规范,况且还是天天在变的东西.结果脱离容器的spring以其灵活的结构和强大的可以和一般EJB相媲美的性能吸引了大量追随者.
其实spring的模式很大程度上是EJB里充分利用脱离容器的context上下文的体现.它对DI(依赖注入)的实现比webwork更深入,比如引入了消息监听机制.相信不久的将来功能更加强大之后,必然强迫EJB的更新.
四,HIBERNATE——让我欢喜让我忧
hibernate是我在JDBC之后接触的第一个ORM模型.给我的最初印象就是能省略很长SQL语句的东西.后来才认识到hibernate对对象模型的体现,不论是关联,聚合,组合,多态还是继承,它都有很好的实现机制.而这些关系都是隐含在代码中的,实现的持久化也是人为来判断实体关系,相信它也是迈向对象数据库的一个很好的过渡.
对于我这个对SQL不是很擅长的鸟类成员,hibernate让我有了更自然的和DB交互的语言.但是每件利器都是双刃的,用不好往往会影响系统性能.比如缓存机制,延迟加载,不能合理处理都会造成内存不足,还有就是查询语句的合理运用.JVM的内存设置一般都是固定的,性能是应该优先考虑的东西.有时候如果实体设计不当,造成关联过于复杂,数据持久就会很难处理.所以才会有很多朋友发出hibernate不如JDBC的感慨.
五,JUNIT——忠实的守护
自动地,密集地单元测试是防守(重构,防止回归错误)的关键法门.对于当前多变的客户需求也许XP是最好的开发方式.不过听大哥们说过国内XP很少,所以只好借鉴一些XP的策略,比如测试驱动开发(TDD).测试的好处我就不多说了,说白了就是给自己程序做个守护,防止开发过程的变化影响其它程序.
自动测试化测试的最大好处就在于可以加快迭代的频率,因为每个部件都保证是正常工作的,整体也是这样的,当然就可以进入下一次迭代了.Junit的强大还在于在它基础上产生的其他测试技术.例如和MOCK结合产生的测试程序交互的框架.Jmeter是在它基础上产生的用于测试系统整体性能的.
还有就是测试技术的发展对软件开发模式的影响,方便快捷的测试使大部分开发者们舍得花时间写测试来保证自己的代码质量,进而影响开发方式,比如TDD的运用.
学习Junit有时候感觉是一件烦琐的事情,毕竟要写的代码增加了一倍.但是当你把一大堆的测试用例合成一个套件时,一个命令就能断言自己的程序没有问题.多么有说服,呵呵!!!
六,XDOCLET——"懒人"的工具
xDoclet是一种通过读取JAVA源文件中的特定标签,然后生成指定文件的工具.xDoclet标签本身已经提供了一些常用的标签,例如ejb,hibernate,web等等.
我是在学习HIBERNATE时接触xDoclet的,复杂的ORM配置文件一直是大家比较头疼的东西.有了xDoclet,就方便多了,有Java DOC运用经验的朋友可以很快进行开发.
我认为用xDoclet主要的工作就是记住一些标签的用法.至于怎么用,现在已经有MYECLIPSE支持了,我个人认为最好的用法还是通过ant的target运行它.
七,ANT——一只聪明的蚂蚁
项目的构建不能依赖于IDE的特殊格式,有很多的task辅助,ant提供给我们一个融合的方式.
Apache Ant是一个基于Java的生成工具.是Another Neat Tool的缩写.与基于shell命令的扩展模式不同,Ant用Java的类来扩展.(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task.每个task由实现了一个实现了特定Task接口的对象来运行.
说到ant,肯定会有一些IDE高手们对它嗤之以鼻,"长篇的build配置文件还不如我一个快捷键来的省事".是的在某些方面ant确实不如IDE来得省事.但是如果涉及到一连串的操作执行,没有宏功能的IDE就不如ant了.还有就是运用ant不必依赖于特定IDE,比如笔者就喜欢自己的开发目录结构,可惜没有一个流行的IDE支持这种目录结构.所以最后只能给他们分工了.
一般IDE和ant的优势是可以互补的,比如作为编译源代码,运行单元测试IDE应该更方便.而产生Java DOC和测试报告,构建.war文件和部署应用,ant更适合.
最后,让我来总结一下这篇不短的废话(总感觉自己在说些废话).所谓工欲善其事,必先利其器.有了这些开源功臣为我们献上的一件件利器,我们确实仿佛成了武林高手.但是要成为剑客必须做到人剑合一,这里也就是说要做到随心而动,不强制自己为了运用框架而运用它.如果我的这篇文章耽误了您的一杯咖啡的时间,请见谅.或者如果有同感或异议,欢迎交流.

 

        原文出处:http://blog.csdn.net/pc01/archive/2006/03/07/1577601.aspx

头歌springboot初体验 描述:使用Spring Boot的spring-boot-devtools依赖,开发者可以在不重启整个应用的情况下,实。课程的学习学习者将能够掌握Spring Boot的核心技术和实践应用,为后续的Java Web开发打下坚。定义:Spring Boot是一个开源Java开发框架,旨在简化Spring应用的初始搭建和开发过程。内容:课程内容包括Spring Boot的介绍、环境搭建、项目创建、基本配置、常用注解、自动配置、 阅读详情

相关推荐

Java开源框架学习初体验 (转)

Java开源框架学习初体验---献给那些不知道struts为何物的朋友们作者:弓明弦 (hotcoffee12)email:gmxsmail@yahoo.com.cn在当今企业平台开发中JAVA是领先技术.由于管理需要越来越多的技术,复杂的结构似乎爆炸式的增长,留下了大师们没有银弹的慨叹.这些复杂结构可以从J2EE规范的快速更新中看出来.复杂的规范,协议和技术使我们迫切期望获得更简易的解决方案.我

小艺的专栏 1416

开源Java 后端框架

通过学习这些开源 Java 后端框架,可以从不同的角度和层面提升 Java 后端开发能力。可以根据具体的开发需求和学习目标,选择合适的框架进行深入学习和实践,例如,如果你想快速开发一个单体应用,可以从 Spring Boot 开始;总之,这些开源 Java 后端框架为开发人员提供了丰富的工具和解决方案,帮助你更高效地开发各种类型的后端应用。根据自己的学习和工作需求,选择合适的框架深入学习和实践,将有助于提升 Java 后端开发的能力和水平。

weixin_51782176的博客 2452

主流开源深度学习框架简介

一、TensorFlow深度学习框架二、PyTorch深度学习框架三、Keras深度学习框架四、Caffe深度学习框架五、中国深度学习开源框架状况六、几种框架的对比七、其他统计数据当下,有许多主流的开源深度学习框架供开发者使用。主要包括TensorFlow、PyTorch、Keras、Caffe等。

逆境清醒的博客 1万+

基于主流 Java 框架的 10 大开源项目实战案例解析

《精选10个Java开源项目:从入门到专家的框架学习路径》 摘要:本文精选10个基于主流Java框架开源项目,涵盖SpringBoot、微服务、响应式编程等热门技术领域。项目包括企业级后台RuoYi、博客系统Halo、微服务示例SpringCloudAlibabaDemo等,每个项目均附技术栈解析和学习价值说明。文章建议分三阶段学习:1-3个月入门全栈开发,3-6个月进阶微服务架构,6个月以上深入RPC框架和监控系统设计。通过分析项目架构、参与开源贡献等方式,开发者可系统掌握框架在实际场景中的应用。

2501_91606508的博客 4185

开源项目 globocom/opensource 指南

开源项目 globocom/opensource 指南 目录结构及介绍 本教程基于GitHub上的 globocom/opensource 项目(请注意,实际项目URL可能需要替换为有效的仓库地址,因为提供的URL并非真实的示例)。以下是一个典型的开放源代码项目目录结构概述,假设基于通用的最佳实践和一般理解,因为没有提供具体的项目细节。 globocom开放式源码/ ├── README.md ...

gitblog_00161的博客 1048

Java 开源通讯框架

Google 开发的高性能框架,基于 HTTP/2 和 Protocol Buffers,支持多语言,提供双向流、流控、头部压缩等特性。:阿里开源的 RPC 框架,支持多种协议(Dubbo、HTTP、gRPC),集成服务治理功能(注册中心、负载均衡)。:支持 JMS 规范,提供高可用、低延迟的消息传递,兼容多种协议(AMQP、STOMP)。:基于 AMQP 协议的消息代理,支持多种消息模式(点对点、发布订阅),插件生态丰富。:异步事件驱动的网络框架,支持 TCP/UDP/HTTP 等协议,高性能且灵活。

leijmdas的专栏 1258

Java开源工作流框架对比

什么是工作流? 工作流,是指“业务​过程的部分或整体在​计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。 在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。 工作流是复杂版本的状态机 就好比一般的请假流程,小明会先提出请假申请,然后由Leader审批或者Manager进行审批,直至审批通过或者拒接。 如果让我们实现请假单状态的切换,那么用一个字段来标识就可以了。 然而对于复杂的状态或者状态维度增加且状态流转的条件极为复杂,可能..

姜兴的专栏 6866

探索开源世界:ZXiaofan的OpenSource_Study项目详解

探索开源世界:ZXiaofan的OpenSource_Study项目详解 OpenSource_Study日积月累,开源框架学习(Thrift、Dubbo、Spring、Guava ... )项目地址:https://gitcode.com/gh_mirrors/op/OpenSource_Study 在浩瀚的编程宇宙中,开源项目是推动技术创新的重要引擎,便是这样一颗璀璨的星星。该项目旨在帮助开...

gitblog_00032的博客 405

java 开源框架有哪些_java 开源框架有哪些

Spring Framework 【Java开源JEE框架】 (推荐学习java课程)Spring是一个解决了许多在J2EE开发中常见的问题的强大框架Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分...

weixin_33281416的博客 345

java开源框架

Spring Framework 【Java开源 J2EE框架】   Spring是一个解决了许多在J2EE开发中常见的问题的强大框架Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用I

行业软件架构研究 1702

java 微博 开源_微博开源框架Motan初体验

前两天,我在开源中国的微信公众号看到新浪微博的轻量Rpc框架——Motan开源了。上网查了下,才得知这个Motan来头不小,支撑着新浪微博的千亿调用,曾经在2014年的春晚中有着千亿次的调用,对抗了春晚的最高峰值。什么是Motan2013 年微博 RPC 框架 Motan 在前辈大师们(福林、fishermen、小麦、王喆等)的精心设计和辛勤工作中诞生,向各位大师们致敬,也得到了微博各个技术团队的...

weixin_42500625的博客 673

java开源框架总结

Java开源框架Spring Framework 【Java开源 J2EE框架Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spr

lzb_178的专栏 808

推荐一些值得学习开源项目和框架

今天收到球友的问题,让推荐一些值得看的开源项目,觉得 netty 这些太复杂了不太好上手。确实如此,我们日常常用的 Spring、Netty 确实由于发展了多年,看起来比较头大。下面我来推荐一些我看过同时觉得不错的项目(几乎都是我参与过的),由易到难,其中也会包含 Java 和 Go 的项目,包含主流的中间件和云原生项目。Java 项目xxl-job难度:???????? 推荐指数:????????????xxl-job 是一...

crossoverJie专栏 954
上一篇: Class.newInstance()学习
下一篇: Java删除文件夹及其所有内容
myjava_024
博客等级 码龄20年 59粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值