使用JFinal/Jsmart框架开发体验(一)

简介:

通过开发一个小例子,完整的体现了Jsmart的各种主要特性,MVC架构,遵循COC配置原则,AOP和Plugin等。

一步一步学习和体会JFinal/Jsmart这款框架。

  • 第一步:创建数据库表

数据表结构如图1-1184245959.png

  1. com.broncho.jsmart.common工程的公共部分,存放配置文件和公共类

  2. com.broncho.jsmart.controller 工程的Controller包,控制部分,属于MVC中的C部分;

  3. com.broncho.jsmart.interceptor 放置拦截器类;

  4. com.broncho.jsmart.model 工程中的Model,属于MVC中的M部分;

  5. com.broncho.jsmart.service 业务处理类;

  6. com.broncho.jsmart.validator 放置校验器类;

  7. mapping-font.xml Controller中的Action转发依据,配置文件

  8. WebRoot下error放在错误页面;

  9. WebRoot下rs放置资源文件;

  10. WebRoot下upload放置上传文件;

  11. WebRoot下users放置Users模块的视图文件

  • 工作内容:

  1. 配置信息;

  2. 用户登录;

  3. 查看所有用户;

  4. 删除用户;

  5. 上传文件;

  6. 下载文件

  • 具体实现

    1.配置文件:

    ◇ JdemoConfig.Properties,配置文件放置到common包下。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
jdbcUrl=jdbc:mysql: //localhost:3306/bbs?characterEncoding=utf-8&zeroDateTimeconvertToNull
user=root
password=xxx
driverClass=com.mysql.jdbc.Driver
#开发模式
devMode= true
#是否显示SQL
showSql= true < /pre><p>    ◇配置类,继承JsmartConfig类,重写相应的方法,其中关键的 3 个方法如下代码所示。</p><p><br></p><pre  class = "brush:java;toolbar:false;" > package  com.broncho.jsmart.common;
import  com.broncho.jsmart.interceptor.GlobalInterceptor;
import  com.broncho.jsmart.model.users.Users;
import  com.jsmart.config.Constants;
import  com.jsmart.config.Handlers;
import  com.jsmart.config.Interceptors;
import  com.jsmart.config.JSmartConfig;
import  com.jsmart.config.Plugins;
import  com.jsmart.config.Routes;
import  com.jsmart.ext.plugin.sqlinxml.SqlInXmlPlugin;
import  com.jsmart.ext.route.RouteCfg;
import  com.jsmart.plugin.activerecord.ActiveRecordPlugin;
import  com.jsmart.plugin.c3p0.C3p0Plugin;
import  com.jsmart.render.ViewType;
/**
  * 使用Jsmart框架,配置全局信息
  *
  * @author Broncho
  * @time 2013年7月17日 09:16:38
  */
public  class  JdemoConfig  extends  JSmartConfig {
     @Override
     public  void  configConstant(Constants me) {
         loadPropertyFile( "classes/com/broncho/jsmart/common/jdemoConfig.Properties" );
         me.setViewType(ViewType.JSP);
         me.setDevMode(getPropertyToBoolean( "devMode" ));
         me.setEncoding( "UTF-8" );
         me.setError404View( "error/error404.jsp" );
         me.setError404View( "error/error500.jsp" );
     }
     @Override
     public  void  configRoute(Routes me) {
         /**
          * 前台路由转发设置
          */
         me.add( new  RouteCfg( "mapping-front.xml" ));
     }
     @Override
     public  void  configPlugin(Plugins me) {
         /**
          * 配置数据源和数据库连接池插件
          */
         C3p0Plugin c3p0 =  new  C3p0Plugin(getProperty( "jdbcUrl" ),
                 getProperty( "user" ), getProperty( "password" ),
                 getProperty( "driverClass" ));
         me.add(c3p0);
         /**
          * 配置数据库表映射插件
          */
         ActiveRecordPlugin arp =  new  ActiveRecordPlugin(c3p0);
         arp.setShowSql(getPropertyToBoolean( "showSql" ));
         me.add(arp);
     }
     @Override
     public  void  configInterceptor(Interceptors me) {
         me.add( new  GlobalInterceptor());
     }
     @Override
     public  void  configHandler(Handlers me) {
         // TODO Auto-generated method stub
     }
}

1.路由转发,使用XML配置文件进行信息设置,配置信息如下代码

1
2
3
4
5
6
<? xml  version = "1.0"  encoding = "UTF-8" ?>
< mappings >
     <!-- 用户功能 -->
     < map  ctlKey = "/users"  ctlClass = "com.broncho.jsmart.controller.users.UsersController"
         viewpath = "/"  />
</ mappings >

2.插件配置,使用了C3P0数据库连接池,因此要依赖第三方jar包,下图是工程所依赖的jar截图:205754617.png

   红色线框标注是使用C3P0数据库连接池插件的依赖包

3.路由转发是根据2中的配置信息来进行的。

  例如: 该链接是默认访问地址http://localhost:8080/Jdemo/index.jsp

        访问Action的地址:http://localhost:8080/Jdemo/users/loginUsers

 其中users是1中配置文件中ctlkey的值,loginUsers是ctlclass对于的Controller类的方法。

4.在项目中使用绝对路径。


   JFinal的页面控制器有Controller类来完成,其中转发的工作则是路由转发的配置文件,该文件是整个控制流程的核心部分。

   JFinal还可以使用注解的方式来进行路由转发路径的设置,这将使用JFinal的插件机制可以完成,在Jsmart中则使用了这一方式。

   整个使用JFinal框架进行Web开发,将侧重Controller的路由转发,数据访问层可以使用ibatis等ORM框架,视图模版引擎FreeMarker,jsp, Rythm,beetl.




本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1255648,如需转载请自行联系原作者

相关文章
|
2月前
|
SQL Java 关系型数据库
springboot搭建后台框架 (一)整合tkMapper
springboot搭建后台框架 (一)整合tkMapper
19 0
|
4月前
|
开发框架 Java 数据安全/隐私保护
SpringBlade、若依框架和人人开源框架对比
SpringBlade、若依框架和人人开源框架对比
|
7月前
|
前端开发 Java Spring
GitHub标星超15k的私活利器!基于Spring Boot前后端分离开发平台
本快速开发平台 基于著名的开源项目“ 若依-RuoYi-Vue ”改造而成,追求 极致的UI交互体验 和 快速开发 ,一切向 效率 看齐, 重构优化 后端的代码,对前端页面进行了 美化 。持续升级中
|
12月前
|
SQL 前端开发 Java
Sprig框架集成(SSM框架) | Sping+SpringMVC+Mybatis
SSM是sping+springMVC+mybatis集成的框架:标准的MVC模式,整个系统划分为表现层,controller层,service层,DAO层四层
109 0
|
JavaScript 前端开发 Java
Spring Boot + Vue 音乐网站开源项目,前后端分离,拿来练手真不错!
Spring Boot + Vue 音乐网站开源项目,前后端分离,拿来练手真不错!
337 0
Spring Boot + Vue 音乐网站开源项目,前后端分离,拿来练手真不错!
|
前端开发 Java
SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】下
SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】
SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】下
|
前端开发 Java 应用服务中间件
SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】上
SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】
SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】上
|
缓存 开发框架 Java
如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他
废话不多说,就说一句:在 JFinal 中集成 EhCache,可以提高系统的并发访问速度。 可能有人会问 JFinal 是什么,EhCache 是什么,简单解释一下。 JFinal 是一个基于Java 语言的极速 Web 开发框架,用起来非常爽,谁用谁知道。EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干的特点,用起来非常爽,谁用谁知道。 JFinal 本身已经集成了 EhCache 这个缓存插件,但默认是没有启用的。那怎么启用呢? 请随我来。
|
Java Maven Spring
SpringBoot一分钟快速入门,摆脱SSM配置地狱!
SpringBoot一分钟快速入门,摆脱SSM配置地狱!
SpringBoot一分钟快速入门,摆脱SSM配置地狱!

相关实验场景

更多