maven整合jfinal(轻量级框架)
来源:互联网 发布:数学不好可以学编程吗 编辑:程序博客网 时间:2024/05/19 16:22
前段时间有机会接触了下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 mysqldriverClass=com.mysql.jdbc.Driver#我的数据库表叫test,根据自己实际情况修改jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8user=rootpassword=rootinitialSize=1minIdle=1maxActivee=20
3.实体层(不需要写字段映射,只要继承Model)
package com.jfinal.dao;import com.jfinal.plugin.activerecord.Model;/** * 实体层 * * @author lpf */public class News extends Model<News>{}
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{@Overridepublic void configConstant(Constants constants) {//设置编码格式constants.setEncoding("UTF-8");//设置为开发模式(如果为fals,jfinal会缓存页面,导致开发时修改页面后不能立即呈现)constants.setDevMode(true);//jfinal支持很多类型的页面,这里设置为jsp,FreeMarker也支持)constants.setViewType(ViewType.JSP);}@Overridepublic void configRoute(Routes routes) {//统一设置映射访问路径 类似于spring mvc的@RequestMappingroutes.add("/", IndexController.class);routes.add("/news", NewsController.class);}@Overridepublic 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);}@Overridepublic void configInterceptor(Interceptors me) {// TODO Auto-generated method stub}@Overridepublic void configHandler(Handlers me) {// TODO Auto-generated method stub}}
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); }}
新闻控制层
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
0 0
- maven整合jfinal(轻量级框架)
- maven +jfinal +bettl 整合
- 轻量级前后端框架 jFinal+AngularJs介绍
- 千里之行系列(2)一 Web工程整合JFinal框架
- MyBatis+Spring轻量级整合(Maven)
- MyBatis+Spring轻量级整合(Maven)
- jfinal整合Hibernate-validator校验框架
- idea 创建maven(ssm框架整合)
- ssm框架整合(无maven)
- MAVEN SSH框架整合(XML篇)
- maven+SSM框架整合
- Maven 整合 SSH 框架
- Maven整合ssh框架
- Jfinal框架
- JFinal框架(JFinal+C3p0+LogBack+ehcache)极速搭建
- JFinal框架基于Maven的WEB项目创建
- Maven项目整合SSM框架
- maven整合SSH框架详解
- 过滤器配置
- LeetCode 200. Number of Islands
- Vijos P1297 生日蛋糕 NOI1999
- phpstudy自己电脑连接另一台电脑上的数据库
- 理解LinkedHashMap
- maven整合jfinal(轻量级框架)
- 缺少maven jar 手动加入中央库中
- 数字化工作流程的技术优势
- Mybatis使用<foreach collection="***" item="**" open="(" separator="," close=")">问题
- 蓝桥杯 Anagrams问题(java题解)
- 使用Jacob实现word转PDF
- 汇编语言(五) 汇编代码在内存中的结构( 8086 + masm 编译器)
- 【数据表间关联关系】 一对多、多对一、一对一、多对多
- GUI(图形用户界面)