论坛首页 Java企业应用论坛

造了个轮子^_^,firefly应用程序框架,性能大幅超越spring3MVC和Struts2,含测试报告

浏览 18291 次
精华帖 (1) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-06   最后修改:2011-01-06
vb2005xu 写道
oojdon 写道
和我的JdonMVC有点相似,楼主加油,共同进步。

我的返回视图不是用注解,而是显式编程,实现一个渲染接口
这样就new Html,new Text,new Json,new JavaScript,new Atom,new Xml.
我的开发坐标是RESTful + DCI + DDD + CQRS

JdonMVC默认是用Jdon作为领域管理层,所以没有IOC。


靠 你咋和我的思路一样呢?? 你看看我这写的
	
	private static String getTemplate(String url,int delay){
		return String.format("<html><head><meta http-equiv=\"refresh\" content=\"%d;URL=%s\" /></head></html>", delay,url);
//		return "<html><head><meta http-equiv=\"refresh\" content=\"" + delay + ";URL=" + url + "\" /></head></html>";
	}

String.format 这个性能很差,所以我自己实现了一个Template函数,比format快好几倍

 

 

 

	private static final String START_FLAG = "${";
	private static final String END_FLAG = "}";
	/**
	 * 将字符串中特定模式的字符转换成map中对应的值
	 *
	 * @param s
	 *            需要转换的字符串
	 * @param map
	 *            转换所需的键值对集合
	 * @return 转换后的字符串
	 */
	public static String convert(String s, Map<String, String> map) {
		StringBuilder ret = new StringBuilder(s.length());
		int cursor = 0;
		for (int start, end; (start = s.indexOf(START_FLAG, cursor)) != -1
				&& (end = s.indexOf(END_FLAG, start)) != -1;) {
			ret.append(s.substring(cursor, start)).append(
					map.get(s.substring(start + START_FLAG.length(), end)));
			cursor = end + END_FLAG.length();
		}
		ret.append(s.substring(cursor, s.length()));
		return ret.toString();
	}
 

在这个帖子里面 http://hypercube1024.iteye.com/blog/833807 有和正则替换的性能测试报告,format我也测过,性能也很差

 

 

0 请登录后投票
   发表时间:2011-01-06  

嗯 不错 我拿你这个改了下 你这个很好用啊

 

public static String replace(String s, Map<String, String> map) {
		StringBuilder ret = new StringBuilder(s.length());
		int cursor = 0;
		for (int start, end; (start = s.indexOf("${", cursor)) != -1
				&& (end = s.indexOf("}", start)) != -1;) {
			ret.append(s.substring(cursor, start)).append(
					map.get(s.substring(start + 2, end)));
			cursor = end + 1; 
		}
		ret.append(s.substring(cursor, s.length()));
		return ret.toString();
	}
 
0 请登录后投票
   发表时间:2011-02-14  
请问楼主,上传文件表单的文件怎么处理?
0 请登录后投票
   发表时间:2011-02-14  
gzenzen 写道
请问楼主,上传文件表单的文件怎么处理?

@HttpParam 目前还不能注入文件上传,只能支持普通的表单参数注入,文件上传注入正想加进去,目前还是只能用HttpRequest 处理文件上传 ~~
0 请登录后投票
   发表时间:2011-02-14  
楼主的代码我大概阅读了
表层发现了几个问题
1.AnnotationBeanreader的scan方法初始化classes改成
if (classes == null) {
   classes = new LinkedHashSet<Class<?>>();
         }
否则配置文件中配置包只能扫描最后一个
2.@Inject如果加在bean的其他方法上,初始化时也会调用该方法
我是个在校学生,没有多少实践机会,看楼主代码我受益匪浅,非常感谢楼主开源共同学习的精神,希望能贡献更多优秀代码大家共同学习
0 请登录后投票
   发表时间:2011-02-15  
不会用,LZ敢不敢给个完整的hello world例子?既然是firefly使用指南,连个hello world 都没有,晕倒
0 请登录后投票
   发表时间:2011-02-15   最后修改:2011-02-15
genius_45 写道
楼主的代码我大概阅读了
表层发现了几个问题
1.AnnotationBeanreader的scan方法初始化classes改成
if (classes == null) {
   classes = new LinkedHashSet<Class<?>>();
         }
否则配置文件中配置包只能扫描最后一个
2.@Inject如果加在bean的其他方法上,初始化时也会调用该方法
我是个在校学生,没有多少实践机会,看楼主代码我受益匪浅,非常感谢楼主开源共同学习的精神,希望能贡献更多优秀代码大家共同学习



非常感谢,1.确实是个Bug,现在就修复
2. @Inject在方法上面初始化确实会调用该方法
0 请登录后投票
   发表时间:2011-02-15  
iminto 写道
不会用,LZ敢不敢给个完整的hello world例子?既然是firefly使用指南,连个hello world 都没有,晕倒


svn主干里面有个 firefly-hello 里面有很多例子
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics