JFinal系统架构整理

Java编程基础教程:Java微服务架构 1.背景介绍 概述 在当今互联网和IT行业,软件开发已经成为行业必备技能。相对于传统的“一刀切”开发模式,以微服务架构(Microservices Architecture)为代表的新型软件架构正在逐渐流行。微服务架构是一个分布式的、面向服务的架构设计方法,它将单个应用程序拆分成一个个独立的小应用,每个小应用负责一种特 阅读详情

JFinal系统架构

JFinal 采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分组成。
JFinal架构十分简单,顶层是一个责任链模式变种,ActionHandler 内部结构也十分简单,是一个Command模式变种。JFinal 架构图如下:
MVC架构,设计精巧,使用简单
遵循COC原则,零配置,无xml
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅218K,且无第三方依赖
JFinal WEB MVC和Struts简要对比


JFinal遵循COC原则,零配置,无xml,而struts需要配置来支持action、result、interceptor配置与使用。
JFinal开发效率非常之高,相对Struts开发效率能提升五到十倍。
JFinal代码量非常省,相对Struts开发能省50%到70%代码量。
JFinal遵循Restful规范,而struts自身未提供Restful支持。Struts可以通过插件来支持restful,但支持不彻底使用不方便。
JFinal提供数据库支持,属于一站式解决方案,而struts仅为WEB MVC框架并未提供数据库支持。
JFinal学习成本极低,只需两个小时学习即可上手开发,而Struts学习成本相对较高。
JFinal相对Struts来说更加轻量级,JFinal打包jar文件仅173KB,而struts则为1.8MB。
JFinal ORM和Hibernate简要对比


JFinal采用ActiveRecord实现数据库操作支持,较Hibernaet开发效率提升六到十倍。
JFinal ActiveRecord较Hibernate学习成本低,一小时内能上手开发。
JFinal零配置,对数据库支持五个无特点:无xml、无annotation、无getter、无setter、无attribute,极大降低了代码量,统计证实代码量节省70%到95%。
JFinal数据库操作完全采用原生sql,相对Hibernate采用的HQL学习成本低,功能更强大,性能更高,稳定性好。
JFinal 中的Controller


Controller是JFinal核心类之一,该类作为MVC模式中的控制器。基于JFinal的Web应用的控制器需要继承该类。Controller是定义Action方法的地点,是组织Action的一种方式,一个Controller可以包含多个Action。以下是代码示例:
public class HelloController extends Controller {
public void index() {
renderText("此方法是一个action");
}
public void test() {
renderText("此方法是一个action");
}
}
JFinal 中的Model


Model是ActiveRecord中最重要的组件之一,它充当MVC模式中的Model部分。以下是Model定义示例代码:
public class User extends Model<User> {
public static final User dao= new User();
}
以上代码中的User通过继承Model,便立即拥有的众多方便的操作数据库的方法。在User中声明的dao静态对象是为了方便查询操作而定义的,该对象并不是必须的。基于ActiveRecord的Model无需定义属性,无需定义getter、setter方法,无需XML配置,无需Annotation配置,极大降低了代码量。
以下为Model的一些常见用法:
// 创建name属性为James,age属性为25的User对象并添加到数据库
new User().set("name", "James").set("age", 25).save();
// 删除id值为25的User
User.dao.deleteById(25);
// 查询id值为25的User将其name属性改为James并更新到数据库
User.dao.findById(25).set("name", "James").update();
// 查询id值为25的user, 且仅仅取name与age两个字段的值
User user = User.dao.findById(25, "name, age");
// 获取user的name属性
String userName = user.getStr("name");
// 获取user的age属性
Integer userAge = user.getInt("age");
// 查询所有年龄大于18岁的user
List<User> users = User.dao.find("select * from user where age>18");
// 分页查询年龄大于18的user,当前页号为1,每页10个user
Page<User> userPage = User.dao.paginate(1, 10, "select *", "from user where age > ?", 18);

基于JFinal的国产微服务框架Jboot设计源码 Jboot微服务框架:基于JFinal的国产微服务框架,提供超过992个文件,涵盖Java、HTML、JavaScript、Shell和CSS等多种语言。该框架被用于用户量过亿的商业产品,并已被超过1000家公司采用,用于极速开发。 立即下载

相关推荐

Visio 2013安装遇阻?手把手教你搞定注册表权限错误1402(附64位系统特殊处理)

本文详细解析了Visio 2013安装过程中常见的注册表权限错误1402问题,特别是在64位系统下的特殊处理方法。通过分步指导如何修改注册表权限、处理Wow6432Node分支以及使用高级工具如subinacl,帮助用户顺利完成安装并避免常见连带问题。

t8u9v0w1x的博客 543

基于 JFinal 的国产微服务框架

Jboot是一个基于JFinal、Dubbo、Seata、Sentinel、ShardingSphere、Nacos等开发的国产框架。

xiaofanren1111的博客 630

Xilinx SDK调试与FPGA硬件验证全流程解析

本文详细解析了从Vivado导出硬件到Xilinx SDK进行调试与FPGA硬件验证的全流程。重点阐述了正确导出包含bitstream的硬件平台、创建合适的SDK工程、配置Debug会话以编程FPGA,并介绍了串口验证、自定义IP测试以及使用ILA进行软硬件联合调试的高级技巧,帮助开发者高效完成FPGA系统的软硬件协同开发与问题排查。

weixin_28327051的博客 310

jfinal框架常用方法和服务器部署参数设置

阿里云参数

晨风若曦的博客 1148

数电实训:万年历

万年历

Lmyccq的博客 1万+

密码学:一文读懂数字证书

消息摘要算法用于验证数据完整性服务,对称加密算法和非对称加密算法用于保证数据保密性服务,数字签名算法用于抗否认性服务。数字证书集合了多种密码学算法:自身带有公钥信息,可完成相应的加密/解密操作;同时,还带有数字签名,可鉴别消息来源;且自身带有消息摘要信息,可验证证书的完整性;由于证书本身含有用户身份信息,因而具有认证性。

Shujie 2909

Java 微服务架构

Java 微服务架构是一个分布式系统,由多个小型、松耦合的服务组成,每个服务运行在独立的进程中,并通过轻量级的协议进行通信。微服务架构的优势在于提高了应用的可伸缩性、灵活性和可维护性,同时还可以使团队更容易协作开发。假设有两个微服务,一个是用户管理微服务,另一个是订单管理微服务。用户管理微服务提供了新增用户、修改用户、查询用户等功能;订单管理微服务提供了新增订单、查询订单等功能。两个微服务之间通过RESTful API进行通信。总结: 微服务架构是一个比较复杂的架构体系,需要对各方面进行充分的考虑和设计。

polsnet的专栏 2362

CentOS 7下kkFileView 4.4.0离线部署全攻略(含LibreOffice 7.5配置避坑指南)

本文详细介绍了在CentOS 7环境下离线部署kkFileView 4.4.0的全流程,包括LibreOffice 7.5的配置避坑指南、中文字体解决方案以及企业级运维实践。通过本指南,用户可以在内网环境中快速搭建稳定可靠的文档在线预览服务,提升办公效率。

weixin_28481133的博客 288

Spring boot 学习心得分享

这种情况在支付业务时常常出现,比如买票业务在最后支付失败,那之前的操作必须全部回滚,如果之前的操作分布在多个数据源中,那么这就是典型的分布式事务回滚。答案是,这个问题其实和第一个问题也相关。和书上理解的不同,我认为Springboot是一个优秀的快速搭建框架,他通过maven继承方式添加依赖来整合很多第三方工具,可以避免各种麻烦的配置,有各种内嵌容器简化Web项目,还能避免依赖的干扰,它内置tomcat,jetty容器,使用的是java app运行程序,而不是传统的用把war放在tomcat等容器中运行。

misskimbaek的博客 923

工业相机——靶面尺寸、像元尺寸、分辨率 、传感器尺寸

由Sensor对角线长度表示,单位英寸,这里的1英寸=16mm。——靶面尺寸为宽12.7mm*高9.6mm,对角线16mm。——靶面尺寸为宽8.8mm*高6.6mm,对角线11mm。——靶面尺寸为宽7.2mm*高5.4mm,对角线9mm。——靶面尺寸为宽6.4mm*高4.8mm,对角线8mm。——靶面尺寸为宽4.8mm*高3.6mm,对角线6mm。——靶面尺寸为宽3.2mm*高2.4mm,对角线4mm。——靶面尺寸为宽14*高10.5mm,对角线17mm。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 9605

Dify 系列教程 | 第 6 篇:工作流入门 -- 用可视化方式编排 AI 逻辑

Dify 工作流是一个基于有向无环图(DAG)的可视化 AI 逻辑编排系统。你可以把多个处理步骤(节点)用连线串联起来,数据从起点流向终点,每经过一个节点就被处理一次。用一个类比来理解:如果单次 Prompt 调用是"一道菜",那工作流就是"一道完整的生产线" – 原材料(输入)进入流水线,经过清洗(预处理)、切配(数据转换)、烹饪(AI 推理)、装盘(格式化输出)等工序,最终产出成品。创建一个工作流类型的应用(或高级聊天类型),就会进入工作流编辑器。编辑器基于ReactFlow构建(

weixin_43674738的博客 118

Springboot计算机毕业设计自驾游信息管理系统3h08v调试部署、源码

随着经济的发展和人们生活水平的提高,自驾游已成为越来越多人选择的出行方式。自驾游不仅赋予了旅行者更高的自由度与灵活性,还促进了旅游业的多元化发展。然而,自驾游过程中涉及的信息繁多且复杂,包括景点介绍、路线规划、住宿预订、餐饮推荐等多个环节。传统的管理方式已难以满足游客高效、便捷的需求,因此开发一套集成化、智能化的自驾游信息管理系统显得尤为重要。

CK3037的博客 923

QML实现ListView的拖动排序

现有一种需求,就是用鼠标拖动某项,动态去改变某一项在ListView中显示的顺序位置,经过研究及实践实战,实现方式的核心代码如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2.2 import QtQuick.Dialogs 1.2 Rectangle { width: 800 ...

草上爬的博客 7563

c语言 github stl_Github 上有哪些比较流行的 C、C++ 或 Java 的入门级项目?

啊,这个邀请…Emmm,之前答过一些刚好整理出来,推荐一些 Gitee 上的 Java/C++ 等相关入门级项目,如果只想看 GitHub 项目的小伙伴可以忽略啦,希望对大家的学习作为补充帮助。Java1. 项目名称:springboot-learning-example项目简介:spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。2. 项目名称:Do...

weixin_36410293的博客 585

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Springboot计算机毕业设计童年记忆平台系统4chlb

在快速发展的信息时代,人们往往被现代生活的快节奏和高压力所困扰,而童年记忆如同一股清泉,总能唤起人们心中深藏的那份纯真与宁静。然而,随着时间的流逝,这些珍贵的回忆可能会逐渐模糊甚至遗忘。同时,互联网和社交媒体的普及,让人们越来越习惯于在网络上分享自己的生活和情感,包括对童年的回忆和怀旧情绪。因此,开发一个以童年记忆为主题的平台系统,不仅能帮助个人珍藏和回顾那些美好的时光,还能构建一个共同分享和交流童年故事的社区环境。

CK3038的博客 1318

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Springboot学生综合管理平台 als4s(程序+源码+数据库+调试部署+开发环境)

随着信息技术的快速发展和教育管理的需求增加,传统的学生管理方式已经无法满足现代学校的管理需求。纸质档案易于丢失、损坏和篡改,且无法实现快速检索和数据统计分析,导致学校管理效率低下。因此,开发一个基于Springboot的学生综合管理平台变得迫切且必要。该平台能够实现学生信息的快速录入、修改和查询,提高学校的管理效率和服务质量,具有重要的现实意义和深远的影响。

CK3035的博客 884

Springboot教材征订系统ski9c(程序+源码+数据库+调试部署+开发环境)

在现代教育体系中,教材的征订管理是一项复杂且重要的工作。随着学校规模的扩大、课程种类的增多以及学生人数的增长,传统的手工教材征订方式面临着诸多挑战。例如,信息管理效率低下,容易出现数据错误、信息更新不及时等问题。为了解决这些问题,设计和实现一个基于Springboot的教材征订系统显得尤为重要。

CK3038的博客 825

Springboot学生作业管理系统23396(程序+源码+数据库+调试部署+开发环境)

随着信息技术的飞速发展和教育管理的需求增加,开发一个高效、可靠的学生作业管理系统对于提高教育管理效率、简化作业流程、增强师生互动和反馈具有重要意义。学生作业管理系统是针对学校、学院或教育机构管理学生作业、课程安排和成绩等关键信息的软件系统。通过集中管理学生和教师的信息,以及班级和作业的管理,管理员可以更高效地组织和协调学校的各项作业任务。

CK3035的博客 1026

SpringBoot数据分析系统8vjzm(程序+源码+数据库+调试部署+开发环境)

随着信息技术的飞速发展,数据分析在各个领域都显得尤为重要。传统的数据分析方式往往效率低下,且难以应对大规模数据集的处理需求。因此,开发一个高效、可靠、灵活的数据分析系统具有重要意义。Spring Boot作为当前流行的Java框架,具有简化配置、快速开发和易于扩展的特点,非常适合用于构建此类系统。本研究旨在开发一个基于Spring Boot的数据分析系统,以提高数据分析的效率和质量,为决策支持提供科学依据。

CK3037的博客 762

SpringBoot视频网站b1b1i(程序+源码+数据库+调试部署+开发环境)

随着互联网技术的快速发展和移动设备的广泛普及,视频网站已成为人们日常生活中不可或缺的一部分。用户通过视频网站可以方便地观看、分享和互动各类视频内容,满足娱乐、信息获取和社交的需求。然而,现有的视频网站在性能、用户体验和功能扩展性等方面存在诸多不足,难以满足市场的快速发展和用户的不断增长的需求。因此,本研究旨在基于SpringBoot框架,设计并实现一个高效、易用、可扩展的视频网站,以提升用户体验,降低运营成本,推动视频行业的持续发展。

CK3039的博客 875

Springboot公共台账管理系统5d5ba(程序+源码+数据库+调试部署+开发环境)

随着社会的不断发展和进步,各行各业都在迅速进行数字化转型。在这个过程中,信息的管理和共享变得尤为重要。特别是对于一些涉及多方参与的公共事务管理系统,如公告信息、用户管理、报表生成等,传统的手工处理已经无法满足快速、高效、准确的需求。因此,建立一个公共台账管理系统成为了当务之急。

CK3037的博客 813

Springboot学生选课系统wxjjv(程序+源码+数据库+调试部署+开发环境)

随着高校信息化建设的推进,学生选课系统已经成为高校教学管理中不可或缺的一部分。传统的人工选课方式存在诸多不便,如选课效率低下、数据出错率较高、数据检索困难等问题。因此,开发一个基于Springboot的学生选课系统具有重要意义。该系统可以规范信息管理流程,使选课工作更加系统化和程序化,同时提高选课效率,降低数据出错率,为高校教学管理提供有力支持。

Cute2024_的博客 853

SpringBoot数码论坛系统设计与实现1f60t(程序+源码+数据库+调试部署+开发环境)

随着互联网技术的不断发展,人们越来越倾向于通过在线平台进行交流与分享。论坛作为一种传统的在线交流方式,仍然具有强大的生命力和广泛的应用场景。数码论坛作为专业领域的交流平台,不仅能够方便用户分享数码产品的使用心得、评价和技术探讨,还能够促进企业和用户之间的互动。基于Spring Boot的数码论坛系统设计与实现,旨在利用Spring Boot框架的便捷性和高效性,为用户提供一个功能完善、性能优越的在线数码论坛平台。

CK3037的博客 960

Springboot软件测试管理系统05ivu

Springboot软件测试管理系统05ivu本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容。

ck3026的博客 1477

SpringBoot云农门户经典案例子系统tglz1(程序+源码+数据库+调试部署+开发环境)

随着信息技术的飞速发展,云计算、大数据与物联网等前沿技术在农业领域的深度融合,正逐步改变着传统农业的面貌。云农门户作为现代农业信息化的重要载体,旨在通过集成化、智能化的服务平台,为农民、农场主及农业相关从业者提供便捷、高效的信息服务和资源支持。在当前乡村振兴与数字农业的战略背景下,构建经典案例子系统成为云农门户不可或缺的一部分。

CK3037的博客 778

SpringBoot汽配管理系统的设计与实现4p875

SpringBoot汽配管理系统的设计与实现4p875本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:SpringBoot汽配管理系统的设计与实现4p875开题报告内容。

ck3021的博客 1013
上一篇: Beetl 模板语言
下一篇: mysql日期加减
OnePiece_Sky
博客等级 码龄15年 9粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值