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.youkuaiyun.com/pc01/archive/2006/03/07/1577601.aspx

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

相关推荐

BMS开发避坑指南:如何用ADBMS6815实现0.03%精度的电池采样?

本文深入解析了如何利用ADBMS6815等高精度AFE芯片,在车规级BMS开发中实现0.03%级别的电池电压采样精度。文章从芯片选型、硬件设计、软件配置、算法优化到系统验证,提供了一套完整的实战指南,帮助工程师系统性地提升BMS测量精度,从而保障电池安全、延长寿命并增强产品竞争力。

weixin_28314575的博客 132

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

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

小艺的专栏 1418

深入浅出CenterFusion

结合论文和代码理解CenterFusion

Untitled的专栏 5100

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

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

逆境清醒的博客 1万+

从单应矩阵到实际距离:Apriltag测距完整实现指南

本文提供了基于Apriltag实现高精度视觉测距与姿态估计的完整指南。详细阐述了从相机标定、单应矩阵分解到欧拉角与距离计算的完整流程,并深入探讨了四个解的歧义选择、工程实践中的滤波优化与多Tag融合等关键问题,旨在帮助开发者在机器人、AR等应用中实现稳定可靠的距离检测与姿态估计。

n7o8p的博客 557

在jetson上对fastdeploy进行源码编译(完整版)

在大多数Linux发行版中,你可以使用包管理器安装Python开发包。根据jetpack的版本选择对应的推理库版本。在~/.bashrc中写入这三行。

如果想成为中心,那么就到中心去吧。 676

【开源的 Java 后端框架】

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

weixin_51782176的博客 2464

2026年VIVO嵌入式岗位高频面试题(含参考答案)

摘要:VIVO嵌入式岗位考核涵盖智能手机、IoT设备、芯片适配等方向,重点考察硬件底层交互、RTOS/Linux开发、C/C++功底与问题排查能力。题目按优先级排序,分硬件架构、RTOS、C/C++、数据结构、Linux实践、行业认知6大模块,共40道题。硬件部分涉及中断、ARM架构、加速技术、BSP开发等;RTOS部分区分硬/软实时系统;C/C++部分侧重内存管理、位操作;Linux部分考察常用命令;行业部分关注鸿蒙等系统理念。题目设计贴合实际工作场景,全面评估嵌入式开发能力。

Open 52

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

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

2501_91606508的博客 4250

【用unity实现100个游戏之34】使用环状(车轮)碰撞器(Wheel Collider)从零实现一个汽车车辆物理控制系统,实现一个赛车游戏

本文介绍了在Unity中使用Wheel Collider组件实现3D车辆物理控制系统的详细步骤。主要内容包括: Wheel Collider参数详解:包括基础参数(质量、半径等)、悬挂弹簧系统(弹力、减震等)和摩擦力设置(前向/侧向摩擦曲线)。 准备工作流程: 导入赛车模型、赛道和树木素材 为车身添加Rigidbody和MeshCollider 创建四个Wheel Collider并调整参数(半径、悬挂距离等) 优化摩擦系数设置防止侧滑 实现车辆控制: 通过代码控制车轮前后移动和转向 提供底盘系统设置(四轮

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2655

如何让C++程序生成dump文件?生成dump文件的方式有哪些?如何使用Windbg分析dump文件?

本文详细介绍了如何让C++程序生成dump文件、生成dump文件的多种方式以及如何使用Windbg分析dump文件,并给出了对应的实战分析案例,有一定的实战参考价值。

dvlinker的技术专栏 5万+

开源项目 globocom/opensource 指南

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

gitblog_00161的博客 1055

DeepSeek+Cline:开启自动化编程新纪元

随着 AI 技术不断进步,编程领域迎来效率变革。DeepSeek 与 Cline 的结合,成为自动化编程的强大工具。DeepSeek 凭借先进的自然语言处理能力,能精准理解编程需求;Cline 作为 VSCode 插件,可实现代码生成、调试、注释等功能的无缝衔接。本文详细阐述二者安装配置、实战操作流程,涵盖从基础代码生成到复杂项目开发的应用技巧,同时解答常见问题,帮助开发者快速掌握这对 “智能搭档”,提升编程效率,解锁自动化编程的无限可能。

邓邓子的博客 6253

Java 开源通讯框架

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

leijmdas的专栏 1271

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java开源工作流框架对比

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

姜兴的专栏 6878

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

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

gitblog_00032的博客 408

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

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

weixin_33281416的博客 351

java开源框架

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

行业软件架构研究 1707

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

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

weixin_42500625的博客 676

java开源框架总结

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

lzb_178的专栏 809

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

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

crossoverJie专栏 955
上一篇: 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、付费专栏及课程。

余额充值