2017-03-14 16:25
@Irin.Chan 是啊用了代码格式, 就不能画底色了, 所以我放弃了用代码格式, 用这个底色主要是划重点, 然后再去看源码会有轻松些
2017-02-11 19:35
您现在应该访问:
http://localhost:8080/jfinal_demo/bolg
才对的, 因为你加了项目名称前缀,
MyEclipse , 建议先 修改 你的 Tomcat 配置 :
如我的: (因为过滤的关系, 以下"<""\" 以 "" 包裹 )
文件: F:\apache-tomcat-7.0.56\conf\server.xml
从后往前找: "<"/Host">" 这个标签, 在它前面加入:(记得加 WebRoot )
"<"Context docBase="F:\workspace\jfinal_3.0\WebRoot" path="" reloadable="false"/">"
"<"反斜杠Host">"
然后 再回到你 的MyEclipse 启动 Tomcat 就好了,
2017-02-09 15:23
@zhaozhihong 你肯定没有 BaseXxx, fastjson 里面是裁了 getXxx,setXxx 的三个字符.... 所以它就能知道需要put 哪些东西
2017-02-09 15:05
实践出真"汁"...
public static void main(String[] args) {
PropKit.use("a_little_config.txt");
DruidPlugin dp = DemoConfig.createDruidPlugin();
ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
arp.addMapping("blog", Blog.class);
// 与web环境唯一的不同是要手动调用一次相关插件的start()方法
dp.start();
arp.start();
// 通过上面简单的几行代码,即可立即开始使用
new Blog().set("title", "title1").set("content", "cxt text").save();
new Blog().set("title", "title2").set("content", "cxt text").save();
//--------------------------------------------------------------------
// ----- 使用 fastjson 互转
Blog blog = Blog.me.findById(1);
//----- 使用 JsonKit : 类 转 json
String blogJson = blog.toJson();
System.out.println("blogJson:\t" + blogJson);
//----- 使用 fastjson : json 转 类
Blog parseObject = JSONObject.parseObject(blogJson, Blog.class);
System.out.println("parseObject.toJson(): \t" + parseObject.toJson());
//---------------------------------------------------------------------
List blogByAll = Blog.me.queryByAll();
//----- 使用 JsonKit : 类集合 转 json集合
String blogByAllJson = JsonKit.toJson(blogByAll);
System.out.println("blogByAllJson: \t" + blogByAllJson);
//----- 使用 fastjson : json集合 转 类集合
List jsons = JSONArray.parseArray(blogByAllJson, Blog.class);
for (Blog parse : jsons) {
System.out.println("List for : \t" + parse.toJson());
}
}
2017-02-08 16:36
enhance(Order.class).dealOrder() 这样写只能在Controller中使用, 因为在Controller中已经有这个方法了,所以您的Controller 就继承了!
Controller源码1237行以后, 这样写到:
public T enhance(Class targetClass) {
return (T)Enhancer.enhance(targetClass);
}
在任意的位置是这样调用的:
Enhancer.enhance(Order.class).dealOrder()
如手册第 4.6 Duang 、Enhancer 章的 例子:
public class TestMain{
public void main(String[] args) {
// 使用Duang.duang方法在任何地方对目标进行增强
OrderService service = Duang.duang(OrderService.class);
// 调用payment方法时将会触发拦截器
service.payment(…);
// 使用Enhancer.enhance方法在任何地方对目标进行增强
OrderService service = Enhancer.enhance(OrderService.class);
}
}
2017-02-08 09:57
性能不是 jfinal template engine 第一个版本的主要目标,第一版本的主要目标是极简,
性能后续会优化,如果后续在性能优化过程中过于牺牲架构与代码质量,则拒绝优化,性能比 velocity 与 freemarker 快很多以后,性能不是重点,
jfinal template engine 目前未做过任何优化,第一个版本的性能已然超过 velocity 与 freemarker,你可以想象一下后续的性能提升空间有多大,
为啥未做任何优化,并且第一个版本的性能这么好,这全是“极简”设计带来的红利,
因为,通常优雅的设计,天然拥有高性能,
而优化这件事,还要有个度,有些优化会让代码变得“dirty” 或者 "ugly",对于这种方式的优化,jfinal template engine 基本都会拒绝,
对于在当前性能的基础之上,再提升一点不必要的性能,去牺牲架构与代码质量,这是不值得的,
jfinal template engine 在后续去优化性能会把握这个度,
大家如果有兴趣,可以看一下 jfinal template engine 这部分的代码,再与其它模板引擎对比一下,立即会有所感觉,
jfinal template engine 的代码量只有 freemarker 的 10 分之 1, 只有 5000 多行,而 FM 有五万多行,对比一下源代码,去看,看一下哪个源码你可以看懂.
jfinal club 是我操刀,大家提供了很多反馈,才让 jfinal 越来越好,再加上现在俱乐部大家提供的资源,以后会更好
---- 摘自 俱乐部