{"id":13439381,"url":"https://github.com/jfinal/jfinal","last_synced_at":"2025-05-14T13:00:21.566Z","repository":{"id":3108388,"uuid":"4134560","full_name":"jfinal/jfinal","owner":"jfinal","description":"JAVA WEB + ORM Framework","archived":false,"fork":false,"pushed_at":"2025-05-09T03:01:36.000Z","size":3774,"stargazers_count":3247,"open_issues_count":13,"forks_count":1317,"subscribers_count":353,"default_branch":"master","last_synced_at":"2025-05-09T04:19:02.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://jfinal.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfinal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-04-25T08:48:48.000Z","updated_at":"2025-05-09T03:01:40.000Z","dependencies_parsed_at":"2023-07-05T20:17:06.100Z","dependency_job_id":"10ec0ac7-35fd-42eb-84d8-d053e2e8e0c0","html_url":"https://github.com/jfinal/jfinal","commit_stats":{"total_commits":468,"total_committers":21,"mean_commits":"22.285714285714285","dds":0.1217948717948718,"last_synced_commit":"e5cb8d1374252a8c0ed936ab29a0f29a35dbc69f"},"previous_names":[],"tags_count":76,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfinal%2Fjfinal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfinal%2Fjfinal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfinal%2Fjfinal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfinal%2Fjfinal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfinal","download_url":"https://codeload.github.com/jfinal/jfinal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149597,"owners_count":22022846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:01:13.434Z","updated_at":"2025-05-14T13:00:21.454Z","avatar_url":"https://github.com/jfinal.png","language":"Java","funding_links":[],"categories":["HarmonyOS","Java","常用框架\\\u0026第三方库","快速开发"],"sub_categories":["Windows Manager","其他"],"readme":"## JAVA 极速WEB+ORM框架 JFinal\n[中文](README.md) [English](README_en.md)\n\nJFinal 是基于 Java 语言的极速 WEB + ORM 框架，其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有 ruby、python 等动态语言的开发效率！为您节约更多时间，去陪恋人、家人和朋友 ;)\n\n#### JFinal有如下主要特点\n- MVC 架构，设计精巧，使用简单\n- 遵循 COC 原则，支持零配置，无 XML\n- 独创 Db + Record 模式，灵活便利\n- ActiveRecord 支持，使数据库开发极致快速\n- 极简、强大、高性能模板引擎 Enjoy，十分钟内掌握 90% 用法\n- 自动加载修改后的 Java 文件，开发过程中无需重启服务\n- AOP支持，拦截器配置灵活，功能强大\n- Plugin 体系结构，扩展性强\n- 多视图支持，支持 Enjoy、FreeMarker、JSP\n- 强大的 Validator 后端校验功能\n- 功能齐全，拥有传统 SSH 框架的绝大部分核心功能\n- 体积小仅 832 KB，并且无第三方依赖\n\n**JFinal 极速开发微信公众号欢迎你的加入: JFinal**\n\n## Maven 坐标\n\n```java\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.jfinal\u003c/groupId\u003e\n    \u003cartifactId\u003ejfinal\u003c/artifactId\u003e\n    \u003cversion\u003e5.2.5\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 以下是JFinal实现Blog管理的示例：\n\n**1. 控制器(支持 Enjoy、JSP、JSON等等以及自定义视图渲染)**\n\n```java\n@Before(BlogInterceptor.class)\npublic class BlogController extends Controller {\n\n    @Inject\n    BlogService service;\n\n    public void index() {\n        set(\"blogPage\", service.paginate(getInt(0, 1), 10));\n        render(\"blog.html\");\n    }\n\n    public void add() {\n    }\n\n    @Before(BlogValidator.class)\n    public void save() {\n        getModel(Blog.class).save();\n        redirect(\"/blog\");\n    }\n\n    public void edit() {\n        set(\"blog\", service.findById(getInt()));\n    }\n\n    @Before(BlogValidator.class)\n    public void update() {\n        getModel(Blog.class).update();\n        redirect(\"/blog\");\n    }\n\n    public void delete() {\n        service.deleteById(getInt());\n        redirect(\"/blog\");\n    }\n}\n```\n\n**2.Service所有业务与sql全部放在Service层**\n\n```java\npublic class BlogService {\n\n    private Blog dao = new Blog().dao();\n    \n    public Page\u003cBlog\u003e paginate(int pageNumber, int pageSize) {\n        return dao.paginate(pageNumber, pageSize, \"select *\", \"from blog order by id asc\");\n    }\n    \n    public Blog findById(int id) {\n        return dao.findById(id);\n    }\n    \n    public void deleteById(int id) {\n        dao.deleteById(id);\n    }\n}\n```\n\n**3.Model(无xml、无annotaion、无attribute)**\n\n```java\npublic class Blog extends Model\u003cBlog\u003e {\n    \n}\n```\n\n**4.Validator(API引导式校验，比xml校验方便N倍，有代码检查不易出错)**\n\n```java\npublic class BlogValidator extends Validator {\n    protected void validate(Controller controller) {\n        validateRequiredString(\"blog.title\", \"titleMsg\", \"请输入Blog标题!\");\n        validateRequiredString(\"blog.content\", \"contentMsg\", \"请输入Blog内容!\");\n    }\n\n    protected void handleError(Controller controller) {\n        controller.keepModel(Blog.class);\n    }\n}\n```\n\n**5.拦截器(在此demo中仅为示例，本demo不需要此拦截器)**\n\n```java\npublic class BlogInterceptor implements Interceptor {\n    public void intercept(Invocation inv) {\n        System.out.println(\"Before invoking \" + inv.getActionKey());\n        inv.invoke();\n        System.out.println(\"After invoking \" + inv.getActionKey());\n    }\n}\n```\n\n## 更多支持\n- JFinal 官方网站  [https://jfinal.com](https://jfinal.com/) \n- 扫码关注官方微信公众号，第一时间尊享最新动向  \n\n![JFinal](https://jfinal.com/assets/img/jfinal_weixin_service_qr_code_150.jpg) \n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfinal%2Fjfinal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfinal%2Fjfinal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfinal%2Fjfinal/lists"}