接触Jfinal已经有十天了,姑且算是一周。
我将官方手册打印出来,反复看了五遍,凭着自己的理解做了一些笔记。也自己动手做了两个十分小的工程,类似于用户管理和上传文件什么的,很快很简单。自己认为已经对这个框架入门,有自己的理解了。在我看来,学习东西需要有自己的理解,这样有助于深层次的学习新东西。下面回顾一下开发过程,总结一下自己的感受。
首先,你要配置web.xml文件:
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>Demo.demoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>//不变的东东
<url-pattern>/*</url-pattern>
</filter-mapping>
其中,
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
是一定要配置好的,其次,
<param-value>Demo.demoConfig</param-value>
这个是自己下的配置文件,一定不能写错(src下,Demo包下的demoConfig.java文件)。
然后你需要写一个小文件config.txt,放在src文件夹下:
jdbcUrl = jdbc:mysql://127.0.0.1/estqq?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
user = root
password =123
devMode = true
在这个文件里,配置好自己的数据库连接,接着在demoConfig.java文件下的常量配置中加载:loadPropertyFile("config.txt");我用的Mysql,estqq是我项目的数据库名称。加载这个文件的理由,我认为是加快加载数据库的速度,提高效率。
接着就是写好demoConfig.java这个文件了:
写好configConstant(Constants me),configRoute(Routes me),configPlugin(Plugins me), configInterceptor(Interceptors me),configHandler(Handlers me)下的配置。其中应该注意的是常量,路由和插件三个方面。值得注意的是数据源,我用的C3P0:
// 配置C3p0数据库连接池插件
C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"),getProperty("user"), getProperty("password").trim());
me.add(c3p0Plugin);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
me.add(arp);
紧接着,你需要Model层和Controller层代码的设计和编写了。这里根据你自己的项目而不同。但基本的步骤应该是一样的,在model层做好大部分数据库的操作方法,然后在Controller层的action中调用model层的那些方法,返回页面渲染。我一般是在model层做好大量的数据库的操作,这样controller层就不会显得臃肿。在action中使用getModel真是很爽的,谁用谁知道。
最后,就是前端页面的代码编写了,我用的jsp,在常量配置中定义页面渲染视图为:
me.setViewType(ViewType.JSP)
不写的话默认为me.setViewType(ViewType.FREE_MARKER)。现在不是很熟悉freemarker,今后继续跟进学习。
总结:
1.框架几乎没有什么配置xml,比SSH简单太多;
2.全栈式框架,每个action可当作API接口;
3.插件灵活,即插即用的赶脚,什么缓存ehcache插件;
4.谁使用,谁喜欢;
5.紧紧follow.
今天就写这么多吧,算是开篇,证明我自己真正成为一名JFinaler了,写的不好希望各位大神不要喷啊,自尊心强受不住,所以在努力奔跑在成为大牛的路上。