jfinal初上手,搭建demo小项目。
推荐语
JFinal 极速开发
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)
JFinal有如下主要特点:
- MVC架构,设计精巧,使用简单
- 遵循COC原则,零配置,无xml
- 独创Db + Record模式,灵活便利
- ActiveRecord支持,使数据库开发极致快速
- 自动加载修改后的java文件,开发过程中无需重启web server
- AOP支持,拦截器配置灵活,功能强大
- Plugin体系结构,扩展性强
- 多视图支持,支持FreeMarker、JSP、Velocity
- 强大的Validator后端校验功能
- 功能齐全,拥有struts2的绝大部分功能
- 体积小仅248K,且无第三方依赖
既然是开源的好东西,那么为了表示一下我的情怀,我也捐助了19元,希望jfinal的研发人员有更强的动力走下去。
搭建jfinal环境
第一步,我们创建web项目
第二步,添加必要的jar包
第三步,修改web.xml
<display-name>ymeng</display-name> <welcome-file-list> <welcome-file>index.html</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>com.hc.jf.config.InitConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
添加Java文件
1.InitConfig.java
@Override public void configConstant(Constants me) { // 加载少量必要配置,随后可用PropKit.get(...)获取值 PropKit.use("jdbc.properties"); me.setDevMode(PropKit.getBoolean("devMode", false)); me.setViewType(ViewType.JSP); // 设置视图类型为Jsp,否则默认为FreeMarker } @Override public void configRoute(Routes me) { me.add("/", IndexController.class, "/index"); // 第三个参数为该Controller的视图存放路径 me.add("/mem", MembersController.class); // 第三个参数省略时默认与第一个参数值相同,在此即为 "/mem" } @Override public void configPlugin(Plugins me) { // 配置C3p0数据库连接池插件 C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password") .trim()); me.add(c3p0Plugin); // 配置ActiveRecord插件 ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin); me.add(arp); arp.addMapping("members", Members.class); // 映射会员 表到 会员模型 }
先不去思考究竟要表达什么,三个方法的作用分别如下:
1. 配置数据库连接以及视图表达方式,这里选用的是jsp,freemarker用了一会觉得不得要领,但是往后可能还需要尝试,我们的前端差不多还得使用html。
2. 配置前后端的URL,即访问地址,这个很关键,很多时候这个地方容易搞混乱,在后面我会再次说明。
3. 创建数据库连接,关联模型。数据库访问基本上是必须的!