博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jfinal-ext2 让你更省心
阅读量:6877 次
发布时间:2019-06-26

本文共 11978 字,大约阅读时间需要 39 分钟。

hot3.png

@JFinal 的 JF2.1 已经 release 了,加了众多牛逼的特性,让我们的coding更加的爽了。JF 是一个精心设计的的服务端框架,极简极小是其优势,而 jfinal-ext2是在 jfinal 基础之上做了一个精心的扩展,让你更省心。

前两天,我刚刚更新了 jfinal-ext2(以下简称 jfex2)到 v2.0.1版本,此版本基于 JF2.1,整合了 JF2.1的 Generator,自动 mapping 等。同时更新了配置格式。本文主要讲解如何在项目中使用jfex2。

jfex2有部分特性基于 jfinal-ext,但发现 jfinal-ext 基于JF1.9,很久没有更新了。于是,我将 jfinal-ext 的 code 自己 copy 到了 jfex2中,并将其做了修改以适应 JF2.1,对于出错部分,我没有过多的去考虑,能改的我就改了,比较打动的,我就删除了。这里点一下,JF2.1吧2.0的 Logger 改名成 Log 了,可是伤透了心"_"。

进入正题。下面逐一讲解

####1. jfex2的依赖 完整的依赖列表

4.0.0
com.jfinal
jfinal-ext2
2.0.1
jfinal-ext2
jfinal-ext2
junit
junit
4.8.2
test
com.jfinal
jfinal
2.1-SNAPSHOT
provided
org.springframework
spring-context
3.2.4.RELEASE
provided
com.alibaba
druid
1.0.5
log4j
log4j
1.2.16
provided
com.jfinal
cos
26Dec2008
provided
com.alibaba
fastjson
1.2.6
provided
org.apache.commons
commons-lang3
3.1
commons-collections
commons-collections
3.2.1
com.google.guava
guava
18.0
mysql
mysql-connector-java
5.1.34
org.freemarker
freemarker
2.3.21
provided
org.quartz-scheduler
quartz
1.8.6
provided
org.quartz-scheduler
quartz
2.2.1
provided
org.apache.poi
poi
3.10.1
provided
org.apache.poi
poi-ooxml
3.10.1
provided
org.mongodb
mongo-java-driver
2.11.2
provided
it.sauronsoftware.cron4j
cron4j
2.2.5
provided
org.apache.activemq
activemq-core
5.7.0
provided
javax.jms
jms-api
1.1-rev-1
provided
net.sf.jxls
jxls-core
0.9.9
provided
redis.clients
jedis
2.2.1
provided
org.crazycake
shiro-redis
1.0.0-RELEASE
provided
org.apache.shiro
shiro-all
1.2.2
provided
net.sf.jxls
jxls-core
0.9.9
provided
maven-compiler-plugin
3.3
1.7
1.7
maven-source-plugin
2.4
package
jar-no-fork

其中部分为 jfex2依赖,大多为 jfext 依赖,使用时可以更加自己的需要添加依赖;

####2. 配置说明

完整的配置

#-----------------------------------------------------------------##  database Config# 1. db.ds: db datasource name, use ',' split. eg :mysql,oracle;# 2. db.*.active:ture, use db,* is the ds name;# 3. db.*.url: db url,* is the ds name;# 4. db.*.user: db username,* is the ds name;# 5. db.*.password: db password,* is the ds name, #	use `java -cp druid-xx.jar com.alibaba.druid.filter.config.ConfigTools your_password`#	generate your encrypt password;# 6. db.*.initsize: db pool init size,* is the ds name;# 7. db.*.maxactive: db pool maxactive,* is the ds name;# 8. db.showsql: ture, show execute sql;#-----------------------------------------------------------------#db.ds = mysql //配置数据源,目前主要测试了 mysql,oracle 没有经过测试,使用者自行测试。db.ds 数据格式,比如使用了 mysql和 oracle,那么 db.ds = mysql,oracle。注意使用英文输入下的","。以下说明均以 db.ds = mysql 进行说明;db.mysql.active = false //是否激活数据源,命名规范为->db.数据源名称.active,比如 db.mysql.active,db.oracle.active。db.mysql.url = testing_host/db //数据库 url,命名规范->db.数据源名.url,比如 db.mysql.url,db.oracle.url。 db.mysql.user = //数据库用户,命名规范->db.数据源名.user,比如db.mysql.user,db.oracle.user。db.mysql.password = lCzd9geWAuAuJtLhpaG/J+d28H8KiMFAWopxXkYpMNdUai6Xe/LsPqMQeg5MIrmvtMa+hzycdRhWs29ZUPU1IQ== //数据库(已经加密)密码,命名规范->db.数据源名.password,比如 db.mysql.password,db.oracle.password。db.mysql.initsize = 6 //数据库连接池初始大小,命名规范->db.数据源名.initsize,比如 db.mysql.initsize,db.oracle.initsize。db.mysql.maxactive = 100 //数据库连接池最大激活数,命名规范->db.数据源名.maxactive,比如 db.mysql.maxactive,db.oracle.maxactive。db.showsql = true //是否显示 sql#-----------------------------------------------------------------## Generator Config# 1. ge.dict: true, generate the data dict;//是否生成数据词典;# 2. ge.base.model.outdir: the basemodel output dir path;//BaseModel 导出目录,可为绝对路径,也可以为相对路径;# 3. ge.base.model.package: the basemodel package;//BaseModel的包名;# 4. ge.model.outdir: the model output dir path;//Model导出目录,可为绝对路径,也可以为相对路径;# 5. ge.model.package: the model package;//Model 的包名;#-----------------------------------------------------------------#ge.dict=truege.base.model.outdir=ge.base.model.package=ge.model.outdir=ge.model.package=#-----------------------------------------------------------------### App Config# 1. app.dev: true, the app is debug mode;# 2. app.upload.basedir: upload file save base dir;# 3. app.post: ture, use Http Post method;# 4. app.name: app's name;#-----------------------------------------------------------------#app.dev = trueapp.upload.basedir = /var/uploads //上传文件的存储路径,最后的文件路径为:/var/uploads/app.name/xxxx,也就是/var/uploads/app 的名称/xxx。app.post = true //是否全部使用 post 方式。注意哦!!!这里设置了true 的话,你的 Controller 的 Action在浏览器上访问会404哦。app.name =

特别注意 app.post = true //是否全部使用 post 方式。注意哦!!!这里设置了true 的话,你的 Controller 的 Action在浏览器上访问会404哦。

####3. jfex2-Config & StandaloneDbConfig

3.1 jfex2-config 主要用于 Web 项目中使用,当然也可以用于非 web 项目,建议在非web 中使用StandaloneDbConfig。

几个重要的参数说明

  • JFinalConfigExt.APP_NAME 应用名称
  • JFinalConfigExt.UPLOAD_SAVE_DIR 应用存储路径
  • JFinalConfigExt.DEV_MODE 应用的模式

3.2 jfex2-config做了什么?

jfex2-config 主要做的是解析 cfg.txt 配置文件的工作。并集成JF2.1Generator,数据库,ErrorPageView等配置。

3.3 怎样在项目中使用 jfext2-config

  • 首先集成 JFinalConfigExt 做一个之类比如是这样的:

    package cn.zhucongqi;	...	public class Config extends JFinalConfigExt {		...	}
  • 在 web.xml 配置

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>JFinal-Ext2-demo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>cn.zhucongqi.Config</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <error-page> <error-code>403</error-code> <location>/WEB-INF/errorpages/403.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/WEB-INF/errorpages/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/WEB-INF/errorpages/500.jsp</location> </error-page> </web-app> ```

####4. jfex2结构

.├── java│   └── com│       └── jfinal│           └── ext2│               ├── config│               │   ├── JFinalConfigExt.java│               │   └── StandaloneDbConfig.java│               ├── core //Controller 扩展│               │   ├── ControllerExt.java│               │   └── Service.java│               ├── ge //自动生成 BaseModel和 Model 的入口;│               │   └── Ge.java│               ├── handler│               │   └── ActionExtentionHandler.java│               ├── interceptor│               │   ├── ExceptionInterceptorExt.java│               │   └── NotFoundActionInterceptor.java│               ├── kit│               │   ├── DDLKit.java│               │   ├── DateTimeKit.java│               │   ├── EncodingKit.java│               │   ├── HexKit.java│               │   ├── HttpExtKit.java│               │   ├── JsonExtKit.java│               │   ├── MobileValidateKit.java│               │   ├── PageViewKit.java //PageView 的工具│               │   ├── RandomKit.java│               │   └── SqlKit.java│               ├── plugin│               │   ├── activerecord│               │   │   ├── generator│               │   │   │   └── ModelExtGenerator.java│               │   │   └── tx│               │   │       ├── DbTx.java│               │   │       ├── DbTxInterceptor.java│               │   │       └── Tx.java│               │   ├── druid│               │   │   └── DruidEncryptPlugin.java│               │   └── spring│               │       ├── Inject.java│               │       ├── IocInterceptor.java│               │       └── SpringPlugin.java│               ├── upload│               │   └── filerenamepolicy│               │       ├── CustomNameFileRenamePolicy.java│               │       ├── CustomParentDirFileRenamePolicy.java│               │       ├── DateRandomFileRenamePolicy.java│               │       ├── FileRenamePolicyWrapper.java│               │       ├── NamePolicy.java│               │       └── RandomFileRenamePolicy.java│               └── validate│                   └── ValidatorExt.java└── resources    ├── cfg.txt.example    ├── errorpages    │   ├── 403.jsp    │   ├── 404.jsp    │   └── 500.jsp    ├── log4j.properties.example    ├── readme.md    └── web.xml.example

####5. jfex2-Ge

jfex2-Ge 怎样使用?

  • 选中项目;
  • 右击项目,在菜单中选择Debug As -> Debug Configurations...;
  • 弹出Debug Configurations窗口,在左边找到Java Application双击它;
  • 此时在右边出现配置窗口,最上面是 name,设置一个名,比如为 Ge;
  • 在下面的第一栏为“Main”,确认Project 为当前已经选择的 Project;
  • Main.class 中输入 "com.jfinal.ext2.ge.Ge";
  • 配置完成点击 Debug 即可;

转载于:https://my.oschina.net/brucezcq/blog/598270

你可能感兴趣的文章
【Java】Java 实现导出excel表 POI
查看>>
泛型-泛型的上限
查看>>
[转载] C#面向对象设计模式纵横谈——24 Visitor访问者模式
查看>>
QT+树莓派实现一个简单的播放器
查看>>
python redis 操作 Sorted Set 出现 'str' object has no attribute 'items'
查看>>
Javascript 面向对象编程
查看>>
Java基础学习总结(14)——Java对象的序列化和反序列化
查看>>
图片翻转
查看>>
了解 Open vSwitch 环境中的各种网络设备
查看>>
Maven学习总结(三)——使用Maven构建项目
查看>>
Go语言开发(三)、Go语言内置容器
查看>>
web.xml配置详解
查看>>
Java8 十大新特性详解
查看>>
DNS服务器搭建
查看>>
/var/log下的日志
查看>>
Java基础学习总结(1)——equals方法
查看>>
MySQL 5.7 忘记密码后修改密码
查看>>
webbench压力测试工具
查看>>
工作中的zookeeper
查看>>
如何把shellcode转换成exe文件分析
查看>>