## JAVA 极速WEB+ORM框架 JFinal
[中文](README.md) [English](README_en.md)
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有 ruby、python 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 ;)
#### JFinal有如下主要特点
- MVC 架构,设计精巧,使用简单
- 遵循 COC 原则,支持零配置,无 XML
- 独创 Db + Record 模式,灵活便利
- ActiveRecord 支持,使数据库开发极致快速
- 极简、强大、高性能模板引擎 Enjoy,十分钟内掌握 90% 用法
- 自动加载修改后的 Java 文件,开发过程中无需重启服务
- AOP支持,拦截器配置灵活,功能强大
- Plugin 体系结构,扩展性强
- 多视图支持,支持 Enjoy、FreeMarker、JSP
- 强大的 Validator 后端校验功能
- 功能齐全,拥有传统 SSH 框架的绝大部分核心功能
- 体积小仅 832 KB,并且无第三方依赖
**JFinal 极速开发微信公众号欢迎你的加入: JFinal**
## Maven 坐标
```java
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>5.1.1</version>
</dependency>
```
## 以下是JFinal实现Blog管理的示例:
**1. 控制器(支持 Enjoy、JSP、JSON等等以及自定义视图渲染)**
```java
@Before(BlogInterceptor.class)
public class BlogController extends Controller {
@Inject
BlogService service;
public void index() {
set("blogPage", service.paginate(getInt(0, 1), 10));
render("blog.html");
}
public void add() {
}
@Before(BlogValidator.class)
public void save() {
getModel(Blog.class).save();
redirect("/blog");
}
public void edit() {
set("blog", service.findById(getInt()));
}
@Before(BlogValidator.class)
public void update() {
getModel(Blog.class).update();
redirect("/blog");
}
public void delete() {
service.deleteById(getInt());
redirect("/blog");
}
}
```
**2.Service所有业务与sql全部放在Service层**
```java
public class BlogService {
private Blog dao = new Blog().dao();
public Page<Blog> paginate(int pageNumber, int pageSize) {
return dao.paginate(pageNumber, pageSize, "select *", "from blog order by id asc");
}
public Blog findById(int id) {
return dao.findById(id);
}
public void deleteById(int id) {
dao.deleteById(id);
}
}
```
**3.Model(无xml、无annotaion、无attribute)**
```java
public class Blog extends Model<Blog> {
}
```
**4.Validator(API引导式校验,比xml校验方便N倍,有代码检查不易出错)**
```java
public class BlogValidator extends Validator {
protected void validate(Controller controller) {
validateRequiredString("blog.title", "titleMsg", "请输入Blog标题!");
validateRequiredString("blog.content", "contentMsg", "请输入Blog内容!");
}
protected void handleError(Controller controller) {
controller.keepModel(Blog.class);
}
}
```
**5.拦截器(在此demo中仅为示例,本demo不需要此拦截器)**
```java
public class BlogInterceptor implements Interceptor {
public void intercept(Invocation inv) {
System.out.println("Before invoking " + inv.getActionKey());
inv.invoke();
System.out.println("After invoking " + inv.getActionKey());
}
}
```
## 更多支持
- JFinal 官方网站 [https://jfinal.com](https://jfinal.com/)
- 扫码关注官方微信公众号,第一时间尊享最新动向
![JFinal](https://jfinal.com/assets/img/jfinal_weixin_service_qr_code_150.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
JAVA WEB + ORM Framework.zip (450个子文件)
.gitignore 443B
Cache.java 53KB
DbPro.java 48KB
FloatingDecimal.java 45KB
Controller.java 43KB
Model.java 35KB
Db.java 25KB
JFinalJsonKit.java 22KB
Engine.java 22KB
Validator.java 17KB
Lexer.java 16KB
MetaBuilder.java 16KB
Constants.java 16KB
EngineConfig.java 15KB
MethodKit.java 14KB
Generator.java 14KB
ExprParser.java 13KB
DruidPlugin.java 13KB
AnsiSqlDialect.java 13KB
Dialect.java 12KB
Record.java 12KB
ProxyGenerator.java 12KB
JsonRequest.java 12KB
ExprLexer.java 12KB
ActiveRecordPlugin.java 11KB
Compare.java 10KB
Cron4jPlugin.java 10KB
Arith.java 10KB
HikariCpPlugin.java 10KB
FileRender.java 9KB
JFinalViewResolver.java 9KB
H2Dialect.java 9KB
AopFactory.java 9KB
Routes.java 9KB
ThreadPoolKit.java 9KB
HttpKit.java 8KB
PostgreSqlDialect.java 8KB
DayCalDateLib.java 8KB
Ret.java 8KB
PathScanner.java 8KB
Parser.java 8KB
InterceptorManager.java 8KB
DataDictionaryGenerator.java 8KB
ParaDirective.java 8KB
TimeKit.java 8KB
CaptchaRender.java 8KB
Converters.java 7KB
FieldGetters.java 7KB
SqlKit.java 7KB
Template.java 7KB
Config.java 7KB
OracleDialect.java 7KB
PropKit.java 7KB
ProxyCompiler.java 7KB
JFinalJson.java 7KB
RenderDirective.java 7KB
SqlServerDialect.java 7KB
ActionHandler.java 7KB
InformixDialect.java 7KB
Prop.java 7KB
JFinal.java 6KB
C3p0Plugin.java 6KB
TypeConverter.java 6KB
ErrorRender.java 6KB
TypeKit.java 6KB
RedisPlugin.java 6KB
ParaProcessorBuilder.java 6KB
Scope.java 6KB
MysqlDialect.java 6KB
Sqlite3Dialect.java 6KB
Log.java 6KB
SharedMethodKit.java 6KB
FreeMarkerRender.java 6KB
MultipartRequest.java 6KB
DruidStatViewHandler.java 6KB
ModelBuilder.java 6KB
Include.java 6KB
ModelRecordElResolver.java 6KB
Invocation.java 6KB
FastFieldGetter.java 6KB
AopManager.java 6KB
RenderFactory.java 5KB
ScheduledKit.java 5KB
StrKit.java 5KB
ActionReporter.java 5KB
ForIteratorStatus.java 5KB
JdkLog.java 5KB
ClassPathSource.java 5KB
Injector.java 5KB
PathKit.java 5KB
FieldKit.java 5KB
ActionMapping.java 5KB
Method.java 5KB
JFinalView.java 5KB
CPI.java 5KB
QrCodeRender.java 5KB
Slf4jLog.java 5KB
BaseModelGenerator.java 5KB
JsonRender.java 5KB
LineCompressor.java 5KB
共 450 条
- 1
- 2
- 3
- 4
- 5
资源评论
嵌入式JunG
- 粉丝: 5500
- 资源: 763
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- redis-standalone.yml redis k8s单点部署
- 2000-2023年省级产业结构升级数据-最新出炉.zip
- Python基于Scrapy兼职招聘网站爬虫数据分析设计(源码)
- zipkin.yml zipkin k8s部署
- YY9706.102-2021医用电气设备第2-47部分
- 通过运用时间序列ARIMA模型与循环神经网络(LSTM)对中国包装机器数量进行预测(python源码)
- 基于ARIMA模型的股票预测(python源码)
- 基于阿里云对象存储的对文件进行批量修改、批量解冻、批量上传
- 山东联通-海信IP501H-GK6323V100C-1+8G-4.4.2-当贝桌面-卡刷包
- IMG_6338.PNG
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功