maven整合jfinal(轻量级框架)

原创 2016年06月02日 09:49:34

      前段时间有机会接触了下jfinal这个框架,感觉用来写一些小型的门户网站或者业务简单的功能性网站比较实用,上手简单,开发快。

      首先介绍一下Jfinal,它是一个基于MVC模式的WEB+ORM框架。有以下特点:

1. MVC架构,设计精巧,使用简单

2. 遵循COC原则,零配置,无xml

3. 独创Db + Record模式,灵活便利

4 ActiveRecord支持,使数据库开发极致快速

5. 自动加载修改后的java文件,开发过程中无需重启web server

6 AOP支持,拦截器配置灵活,功能强大

7. Plugin体系结构,扩展性强

8. 多视图支持,支持FreeMarker、JSP、Velocity

9. 强大的Validator后端校验功能

10. 功能齐全,拥有struts2的绝大部分功能

11. 体积小仅248K,且无第三方依赖

      

好了,废话不多说,直接开干!

项目结构图


1.新建一个maven项目(这个步骤不多说,附:pom.xml依赖)

	<dependencies>
	<!-- jfinal 核心包 -->
		<dependency>
			<groupId>com.jfinal</groupId>
			<artifactId>jfinal</artifactId>
			<version>2.2</version>
		</dependency>
		<dependency>
			<groupId>com.jfinal</groupId>
			<artifactId>cos</artifactId>
			<version>26Dec2008</version>
		</dependency>
	<!-- 阿里巴巴druid数据连接池-->	
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.15</version>
		</dependency>
	<!-- mysql驱动-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.20</version>
		</dependency>
	<!-- 单元测试-->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
		</dependency>
	<!-- servlet标准-->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>
	</dependencies>



由此可见使用jfinal的依赖包并不多,核心只有两个


2.配置数据源参数(jdbc.properties )

#jdbc mysql
driverClass=com.mysql.jdbc.Driver
#我的数据库表叫test,根据自己实际情况修改
jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
user=root
password=root

initialSize=1
minIdle=1
maxActivee=20

3.实体层(不需要写字段映射,只要继承Model)

package com.jfinal.dao;

import com.jfinal.plugin.activerecord.Model;

/**
 * 实体层
 *
 * @author lpf
 */

public class News extends Model<News>{
}


4.jfinal配置文件(非常重要,注释都已写好,需要更深层次的功能自己查阅资料,这里只配置基本的)

package com.jfinal.config;

import com.jfinal.controller.IndexController;
import com.jfinal.controller.NewsController;
import com.jfinal.dao.News;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.render.ViewType;

/**
 * jfinal配置文件
 *
 * @author lpf
 */
public class WebConfig extends JFinalConfig{

	@Override
	public void configConstant(Constants constants) {
		//设置编码格式
		constants.setEncoding("UTF-8");
		//设置为开发模式(如果为fals,jfinal会缓存页面,导致开发时修改页面后不能立即呈现)
		constants.setDevMode(true);
		//jfinal支持很多类型的页面,这里设置为jsp,FreeMarker也支持)
		constants.setViewType(ViewType.JSP);
	}

	@Override
	public void configRoute(Routes routes) {
		//统一设置映射访问路径  类似于spring mvc的@RequestMapping
		routes.add("/", IndexController.class);
		routes.add("/news", NewsController.class);
	}

	@Override
	public void configPlugin(Plugins plugins) {
		//这里启用Jfinal插件  读取jdbc配置
		PropKit.use("jdbc.properties");
		final String URL =PropKit.get("jdbcUrl");
		final String USERNAME = PropKit.get("user");
		final String PASSWORD =PropKit.get("password");
		final Integer INITIALSIZE = PropKit.getInt("initialSize");
		final Integer MIDIDLE = PropKit.getInt("minIdle");
		final Integer MAXACTIVEE = PropKit.getInt("maxActivee");

		DruidPlugin druidPlugin = new DruidPlugin(URL,USERNAME,PASSWORD);
		druidPlugin.set(INITIALSIZE,MIDIDLE,MAXACTIVEE);
		druidPlugin.setFilters("stat,wall");
		plugins.add(druidPlugin);

		//实体映射
		ActiveRecordPlugin activeRecordPlugin = new ActiveRecordPlugin(druidPlugin);
		activeRecordPlugin.addMapping("news","id", News.class);
		plugins.add(activeRecordPlugin);

	}

	@Override
	public void configInterceptor(Interceptors me) {
		// TODO Auto-generated method stub

	}

	@Override
	public void configHandler(Handlers me) {
		// TODO Auto-generated method stub

	}
}


5. service业务层(jfinal支持事务处理,这里只是简单的插入一条数据)

package com.jfinal.service;

import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

public class NewsService {

    public void add(String newstitle){
            Record news = new Record().set("newstitle", newstitle);
            Db.save("news", news);
    }
}


6.controller控制层

新闻控制层

package com.jfinal.controller;


import com.jfinal.core.Controller;
import com.jfinal.service.NewsService;


public class NewsController extends Controller{


    private NewsService newsService = new NewsService();


    public void index(){
    <span style="white-space:pre">	</span>test();
    <span style="white-space:pre">	</span>renderJsp("/news/news.jsp");<span style="white-space:pre">	</span>
    }


    public void test(){
       System.out.println("进入...");
       newsService.add("测试值");
       System.out.println("执行成功...");
      
    }
}


项目根路径访问

package com.jfinal.controller;

import com.jfinal.core.Controller;

/**
 * jfinal默认调用方法
 *
 * @author lpf
 */

public class IndexController extends Controller{

    public void index(){
        renderJsp("index.jsp");
    }
}

到这里基本就完成了一个简单的jfianl框架的搭建,如果需要事务处理,拦截器、日志等功能可以自己去查资料。我会附上项目源码,可以自己导入修改。

jfinal官网地址: http://www.jfinal.com/
项目源码:http://pan.baidu.com/s/1i4TABh7




版权声明:本文为博主原创文章,未经博主允许不得转载。

jfinal websocket的配置以及实现。

jfinal websocket的配置以及实现。
  • qq_36073929
  • qq_36073929
  • 2016年12月28日 10:35
  • 1162

急速WEB框架JFinal及DB+ActiveRecord模式浅析

JFinal确实够快,主要体现在了对servlet的封装上,比struts要方便许多,与springMVC的modelAndView的模式有一些像,但感觉JFinal还是要更精简一些。但是这个快是有牺...
  • zhao9tian
  • zhao9tian
  • 2014年07月24日 11:11
  • 2621

轻量级前后端框架 jFinal+AngularJs介绍

最近有意无意、机缘巧合之下认识了两个新的WEB框架,其中一个是后端框架叫JFinal,看名字就让人觉得为之一振,最后的、最终的,没错它的意思就是“我是JavaEE的终极框架”,没有比这更好的啦!当然,...
  • rchm8519
  • rchm8519
  • 2013年05月25日 01:24
  • 13117

spring boot +maven+ netty4+protostuff+zookeeper实现一个轻量级RPC框架

  • 2017年05月10日 10:15
  • 17.61MB
  • 下载

jfinal整合Hibernate-validator校验框架

做服务器开发时,我们接收到前端传来的参数都需要进行校验,判断参数是否合法,现在基本都是采用最傻逼且最苦逼的方法,就是在每个函数里都进行参数校验,但是有很多相同的参数都要在不同函数里重复出现校验的代码,...
  • linzhuowei0775
  • linzhuowei0775
  • 2016年10月29日 14:34
  • 666

MyBatis+Spring轻量级整合(Maven)

MyBatis+Spring轻量级整合(Maven)
  • u014593098
  • u014593098
  • 2014年08月06日 13:31
  • 813

《精通Java Web整合开发》随书光盘源码__第12章 初识Java EE轻量级持久化框架Hibernate -- 1

  • 2008年10月19日 13:18
  • 43.38MB
  • 下载

精通轻量级Java EE 框架整合方案

  • 2011年10月31日 20:51
  • 48.85MB
  • 下载

JavavEE轻量级框架Struts2+Hibernate+Spring整合开发

  • 2015年05月28日 16:46
  • 4.22MB
  • 下载

《精通Java Web整合开发》随书光盘源码__第12章 初识Java EE轻量级持久化框架Hibernate -- 2

  • 2008年10月19日 13:21
  • 44.59MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:maven整合jfinal(轻量级框架)
举报原因:
原因补充:

(最多只允许输入30个字)