Jfinal项目搭建
来源:互联网 发布:mac铁锈红是什么色 编辑:程序博客网 时间:2024/05/17 15:18
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的绝大部分功能
体积小仅339K,且无第三方依赖
druid-1.0.5.jar // 配置C3p0数据库连接池插件
jfinal-3.0-bin-with-src.jar //Jfinal核心包
log4j-1.2.16.jar //日志包
mysql-connector-java-5.1.20-bin.jar //数据库连接驱动
搭建Jfinal项目:
(1)引入jar包
(2)创建核心配置类
(3)修改web.xml文件
引入jar包
创建核心配置类
DemoConfig.java
package com.demo.common;import com.demo.blog.BlogController;import com.demo.common.model._MappingKit;import com.demo.index.IndexController;import com.jfinal.config.Constants;import com.jfinal.config.Handlers;import com.jfinal.config.Interceptors;import com.jfinal.config.JFinalConfig;import com.jfinal.config.Plugins;import com.jfinal.config.Routes;import com.jfinal.core.JFinal;import com.jfinal.kit.PropKit;import com.jfinal.plugin.activerecord.ActiveRecordPlugin;import com.jfinal.plugin.druid.DruidPlugin;import com.jfinal.template.Engine;/** * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 * 详见 JFinal 俱乐部: http://jfinal.com/club * * API引导式配置 */public class DemoConfig extends JFinalConfig {/**
* 如果以此方法运行,须引入jetty-server-8.1.8.jar,如以tomcat运行,需删除* jetty-server-8.1.8.jar* 运行此 main 方法可以启动项目,此main方法可以放置在任意的Class类定义中,不一定要放于此 * * 使用本方法启动过第一次以后,会在开发工具的 debug、run config 中自动生成 * 一条启动配置,可对该自动生成的配置再添加额外的配置项,例如 VM argument 可配置为: * -XX:PermSize=64M -XX:MaxPermSize=256M */public static void main(String[] args) {/** * 特别注意:Eclipse 之下建议的启动方式 */JFinal.start("WebRoot", 80, "/", 5);/** * 特别注意:IDEA 之下建议的启动方式,仅比 eclipse 之下少了最后一个参数 */// JFinal.start("WebRoot", 80, "/");}/** * 配置常量 */public void configConstant(Constants me) {// 加载少量必要配置,随后可用PropKit.get(...)获取值PropKit.use("a_little_config.txt");me.setDevMode(PropKit.getBoolean("devMode", false));}/** * 配置路由 */public void configRoute(Routes me) {me.add("/", IndexController.class, "/index");// 第三个参数为该Controller的视图存放路径//me.add("/blog", BlogController.class);// 第三个参数省略时默认与第一个参数值相同,在此即为 "/blog"}//配置通用模板public void configEngine(Engine me) {}public static DruidPlugin createDruidPlugin() {return new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());}/** * 配置插件 */public void configPlugin(Plugins me) {// 配置C3p0数据库连接池插件DruidPlugin druidPlugin = createDruidPlugin();me.add(druidPlugin);// 配置ActiveRecord插件ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);// 所有映射在 MappingKit 中自动化搞定_MappingKit.mapping(arp);me.add(arp);}/** * 配置全局拦截器 */public void configInterceptor(Interceptors me) {}/** * 配置处理器 */public void configHandler(Handlers me) {}}创建数据库连接配置文件
a_little_config.txt
jdbcUrl = jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8&zeroDateTimeBehavior=convertToNulluser = rootpassword =devMode = true
修改web.xml文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><filter><filter-name>jfinal</filter-name><filter-class>com.jfinal.core.JFinalFilter</filter-class><init-param><param-name>configClass</param-name>//该路径改为 DemoConfig.java 路径 <param-value>com.demo.common.DemoConfig</param-value></init-param></filter><filter-mapping><filter-name>jfinal</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>创建控制器
IndexController.java
package com.demo.index;import com.jfinal.core.Controller;/** * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 * 详见 JFinal 俱乐部: http://jfinal.com/club * * IndexController */public class IndexController extends Controller {public void index() {render("index.html");}}_MappingKit.java
package com.demo.common.model;import com.jfinal.plugin.activerecord.ActiveRecordPlugin;/** * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 * 详见 JFinal 俱乐部: http://jfinal.com/club * * Generated by JFinal, do not modify this file. * <pre> * Example: * public void configPlugin(Plugins me) { * ActiveRecordPlugin arp = new ActiveRecordPlugin(...); * _MappingKit.mapping(arp); * me.add(arp); * } * </pre> */public class _MappingKit {public static void mapping(ActiveRecordPlugin arp) {//运行_JFinalDemoGenerator.java自动生成}}
_JFinalDemoGenerator.javapackage com.demo.common.model;import javax.sql.DataSource;import com.demo.common.DemoConfig;import com.jfinal.kit.PathKit;import com.jfinal.kit.PropKit;import com.jfinal.plugin.activerecord.generator.Generator;import com.jfinal.plugin.druid.DruidPlugin;/** * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 * 详见 JFinal 俱乐部: http://jfinal.com/club * * 在数据库表有任何变动时,运行一下 main 方法,极速响应变化进行代码重构 */public class _JFinalDemoGenerator {public static DataSource getDataSource() {PropKit.use("a_little_config.txt");DruidPlugin druidPlugin = DemoConfig.createDruidPlugin();druidPlugin.start();return druidPlugin.getDataSource();}public static void main(String[] args) {// base model 所使用的包名String baseModelPackageName = "com.demo.common.model.base";// base model 文件保存路径String baseModelOutputDir = PathKit.getWebRootPath() + "/../src/com/demo/common/model/base";// model 所使用的包名 (MappingKit 默认使用的包名)String modelPackageName = "com.demo.common.model";// model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)String modelOutputDir = baseModelOutputDir + "/..";// 创建生成器Generator generator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);// 设置是否生成链式 setter 方法generator.setGenerateChainSetter(false);// 添加不需要生成的表名generator.addExcludedTable("adv");// 设置是否在 Model 中生成 dao 对象generator.setGenerateDaoInModel(true);// 设置是否生成链式 setter 方法generator.setGenerateChainSetter(true);// 设置是否生成字典文件generator.setGenerateDataDictionary(false);// 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUsergenerator.setRemovedTableNamePrefixes("t_");// 生成generator.generate();}}
0 0
- Jfinal项目搭建
- 搭建第一个jfinal项目
- Jfinal快速上手---项目搭建
- jfinal+redis+maven搭建web项目
- JFinal之旅——Maven下搭建项目
- jfinal的搭建
- JFinal框架搭建
- JFinal框架环境搭建
- jfinal开发环境搭建
- IDE搭建JFinal环境
- JFinal开发环境搭建,JFinal开发案例
- Jfinal项目配置
- java极速mvc框架jfinal项目框架搭建过程(图文详解)
- jfinal下项目路径获取
- eclipse创建Jfinal web项目
- JFinal框架(JFinal+C3p0+LogBack+ehcache)极速搭建
- jfinal
- JFinal
- Java 集合枚举泛型(二)
- hadoop上传文件报错
- ORACLE 存储过程 in 参数问题
- jsp学习(3)-----jsp的6个动作
- 百度编辑器单独作为图片上传文件上传功能,百度编辑器做缩略图
- Jfinal项目搭建
- 微信第三方平台:小程序模板开发与发布
- Oralce数据库查询某张表某个字段的值有相同的记录并统计个数
- CSS3的属性选择器
- mysq对数据的l查询,增加,修改和删除sql语句
- freecodecamp advance algorithm scripting
- 简单的爬取新浪新闻标题与链接
- python和lua的socket实例
- android 瀑布流布局 + 自由拖拽