`
ta8210
  • 浏览: 14237 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

正式发布,More框架alpha3版,初步完成基石搭建工作。

阅读更多

 JavaEye圈子:http://more.group.iteye.com/

 

项目主页:http://more.byshell.org/

 

它到底带来了些什么?:点击查看

 

欢迎大家关注,也欢迎大家加入More的圈子。目前More处在构建核心技术和稳定已有框架的阶段。在未来的规划中More会努力兼容领域模型开发和Rest架构开发,以及创建自己的特色。

More的宗旨是:

  1. 少量的学习
  2. 轻量化的开发
  3. 最简的配置
  4. 多种应用架构的支持
  5. 高集成
  6. “零”污染  

 

More Core

    MoreCore是整个more框架的基石。它内置了ASM3.2框架、提供了JSON数据互转的支持、还提供了一个bean拷贝的工具、Task可以将任务分解开然后统一调度、除此之外还提供了IO工具和增强的属性接口Attribute。使用Attribute还可以设置属性的替换策略或锁定策略。

    ClassCode是一个与CgLib奇虎相当的字节码工具,经过测试ClassCode的对象创建操作是CgLib2.2的14.3倍,在50万次Aop方法调用上ClassCode使用了16797毫秒,CgLib2.2使用了16515毫秒仅仅输给了282毫秒这是Java的动态代理无法比拟的速度。不同于CgLib2.2的是ClassCode提供了对象附加接口实现功能,利用这个功能你可以向一个已经创建的类对象身上绑定新的原来没有实现的接口,同样的你也可以改写类来附加接口实现

更多功能请关注More项目主页JavaEye圈子

 

Beans 

    负责为more提供ioc和aop的支持,使用Beans的aop不在依赖接口。beans还可以给一个对象附加任何接口实现(目前不支持rt.jar详细解决方案留意圈子),除此之外从alpha3开始beans支持注解方式简化Bean配置。该子框架的功能略见【版本历程

 

Submit 

    内核框架,该组建是一个MVC框架。Submit的扩展有两个方向,一个是支撑环境另一个是外壳扩展。通过扩展外壳可以与各种容器框架集成,more在alpha版时就提供了Spring容器作为外壳。此外它还有一个beans的外壳提供。此外可以通过扩展支撑环境来达到各种领域延伸的目的。Web Ext模块中Action以及四种Web下Action调用的支持就是通过扩展支撑环境而实现的。

    submit还具备参数作用域的特性,submit内核只提供了Context、Session、ActionStack三个变量作用域。而Web外壳下除了这三个作用域还提供了与web有关的另外五个作用域。

    submit还具备Action请求拦截器的功能,不同于Struts2的是Submit不支持Results模板但是您可以通过返回值回调脚本来完成更强大的功能这个脚本完全使用JS编写。此外从alpha3开始Action的配置可以通过注解形式完成。该子框架的功能略见【版本历程

 

Web Ext

     Web Ext模块是More专门在Web环境中提供的特定工具或扩展,其中包括了分页标签、Submit的Web扩展、字符过滤器、ActionJS。更多的Web工具还在开发中。

    Submit的Web扩展是提供Web MVC的一个web支撑环境,在web环境中提供了五种Action调用方式其中还包括了JavaScript方式调用从而省去了Dwr。使用页面预处理(标签调用)还可以体验到ASP方式的快速编码。除此之外在Web扩展中除了Submit核心3个参数作用域之外又提供了五个与Web有关的作用域它们是:JspPage、HttpRequest、HttpSession、Cookie、ServletContext。该子框架的功能略见【版本历程

Extension

More目前已经集成了Spring,更多的第三方框架集成加入中...

 

 

alpha3更新说明:

beans v1.2(版本alpha3):
  1.增加注解配置支持,至此xml配置与注解支持可以同时进行。xml的优先级高于注解。
  2.可以注解配置Bean。
  3.可以注解配置Bean的构造方法参数注入
  4.可以注解配置Bean的Aop链。
  5.可以注解配置附加接口实现,但是所有附加接口都使用一个接口处理委托。如果要一个接口对应一个委托只有xml配置支持。
  6.可以注解配置属性注入。
  7.注解配置支持以定义的基本类型和四种引用类型。
  8.注解配置需要通过xml配置anno:anno标签。
  9.通过anno标签可以开启注解配置以及配置beans的扫描路径。
  10.重写了Resource接口的实现类。

submit v3.1(版本alpha3):
  1.TopFilter类更名为SubmitRoot。
  2.优化submit代码,减少了代码中new的操作。
  3.修改submit的Config接口getInitParameter相关方法返回值为Object类型。
  4.重写了submit的more和spring外壳提供环境使其更简化和直观。同时more和spring外壳支撑中加入了默认配置文件位置。
 其中more支撑环境默认配置文件位置:/WEB-INF/more-config.xml
 其中spring支撑环境默认配置文件位置:/WEB-INF/applicationContext.xml
  5.CasingBuild增加缓存功能,可以通过cacheContext属性控制是否开启缓存,默认是开启的。
  6.增加ActionObjectFactory核心接口,该接口负责创建、查找一切Action相关资源,同时该负责解析Filter注解。
  7.支持注解化配置Action所有配置。

  • 描述: More (alpha3)总体结构图
  • 大小: 21.4 KB
  • 大小: 238.6 KB
  • 大小: 110.7 KB
分享到:
评论
13 楼 ta8210 2010-01-27  
<p>今天正式 发布 alpha3。</p>
<p> </p>
<p>下面是项目主页以及下载地址相关例子也已经传递到项目主页:</p>
<p> </p>
<p>项目主页:<a rel="nofollow" href="http://more.byshell.org"><span style="color: #0000cc;"><strong>http://more.byshell.org</strong></span></a><strong> 或 </strong><a rel="nofollow" href="http://evemore.googlecode.com"><strong><span style="color: #0000cc;">http://evemore.googlecode.com</span></strong></a></p>
<p>下载地址:<a href="http://code.google.com/p/evemore/downloads/list"><strong>http://code.google.com/p/evemore/downloads/list</strong></a></p>
<p> </p>
<p>项目主页由于空间限制暂不提供编译依赖的jar以及例子项目依赖的第三方jar下载。</p>
12 楼 ta8210 2010-01-21  
<div class="quote_title">kjj 写道</div>
<div class="quote_div">对一出来就说要替代这个,替代那个的框架都不看好,这种框架的最终结果是谁也替代不了的</div>
<p><br><br>标题中“替代”这个词很大成分是为了广告效应。你说的谁也替代不了,我在发布alpha2的时候在主页曾经就说过如果More选择替代那么它将注定失败。如果没有“替代”这个词恐怕现在点击量不会在1000以上。 <br><br><br>如果一味的基于其他框架去开发而没有自己核心内容,那么在集成开发时候肯定会受到被集成框架的诸多限制。就像Ioc一个已经 Aop的代理类在Spring中必须使用接口。 如果想突破这个限制必须重写Spring相关代码或者做大量配置。 <br><br>在有一个假设,SSH+Dwr的开发中。项目中存在了 Dwr Action服务层,Action层,在More中你只需要有Action层就可以完成Dwr的功能,而且Dwr相关功能在More中已经以插件形式得到了支持。当然这不是内置Dwr也就意味着你不需要依赖dwr。同样的more也不限制你在去集成dwr。在more的世界里任何第三方框架的相互集成都不影响more的使用。<br><br>正如我在帖子中所阐述的,<span style="color: #ff0000;"><strong>使用more不会破坏原有系统架构</strong></span>。而且more的后期加入只会让项目更灵活而非更繁琐的集成。</p>
<p> </p>
11 楼 kjj 2010-01-20  
对一出来就说要替代这个,替代那个的框架都不看好,这种框架的最终结果是谁也替代不了的
10 楼 ta8210 2010-01-20  
lgdlgd 写道
看到很多类似if(value.equals("") == true)这样的代码,不知道是否只是个人习惯还是有什么深意?


value.equals("") == true 和 value.equals("") 我还是喜欢 value.equals("") == true 是我的习惯。考虑到javac在最终编译的时候value.equals("")这样的代码最后还是被编译成value.equals("") == true所以如何写到不会提升性能像字符串首字母转大写就使用了下面这段代码。目前来讲经过测试这段代码是我写出的运行最快的代码,当然如果发现有运行效率更快的,我会在恰当的时机替换原有代码。
//转换首字母大写
StringBuffer sb = new StringBuffer(beanClass.getSimpleName());
char firstChar = sb.charAt(0);
sb.delete(0, 1);
sb.insert(0, (char) ((firstChar >= 97) ? firstChar - 32 : firstChar));
this.beanName = sb.toString();

"".equals(value) 和 value.equals("") 某种程度上是一样的。  我也考虑 value == "" 之类的东西以减少equals毕竟equals速度太慢了。

像配置文件扫描中就大量使用了value.equals(""),因为考虑到Resource提供缓存的支持。所以IO、equals这样的操作就相对减少了很多,合理利用缓存会增加效率。More beans的ioc性能最快可以达到Spring的6倍 前提要求就是合理利用Ioc模式和缓存。如果使用不恰当Spring倒是它的6倍速度。

由于代码量很大,优化阶段在下几个版本会逐步覆盖。 例如目前注解扫描就有优化的余地。
9 楼 lgdlgd 2010-01-19  
看到很多类似if(value.equals("") == true)这样的代码,不知道是否只是个人习惯还是有什么深意?
8 楼 ta8210 2010-01-19  
<p><span style="color: #ff0000;">既然打算替代SPRING, 为什么还打算集成SPRING呢? <br></span>More的替代是有范围的它不能全盘替代Spring,况且Spring的高集成我是很羡慕的。如果more追赶spring的集成想必一定是一个巨大巨大的轮子。</p>
<p> </p>
<p>因此More只打算拥有Spinrg最基本的Ioc/Aop功能,利用这个功能来不受影响的发展more自己的未来技术。集成Spring就意味着Spring做的事情我不用在做了。。。<br><br><span style="color: #ff0000;">很多的代码都是从其他组件里copy过来的</span></p>
<p><span style="color: #000000;">目前只有ASM3.2的代码是从其项目中直接拷贝,因为考虑版权问题。我不修改ASM3.2的任何代码只是将包声明变动了一下。在alpha3发布的时候也会按照开源协议携带ASM3.2的 授权文件。</span></p>
<p> </p>
<p><span style="color: #ff0000;">和spring有什么具体的区别吗?</span> </p>
<p>有区别的,More有自己的Ioc框架这个是它的基石。使用More不会影响你项目中已经运行的SSH组合。换句话说如果你的领导现在让你在最快的时间之内在SSH项目中附加一套BBS。想必ASP的那种编程风格是很效率的了。</p>
<p>More可以提供你这样的一个环境,同时它还不破坏MVC结构,也不会影响你已有框架技术。分层在More里也是很清晰的。这都全依赖 页面预处理,同时More还不影响SSH的运行甚至More会去集成项目中的Spring来做页面预处理。</p>
<p> </p>
<p>More的Action的调用方式有很多这决定了它可以灵活应用在JSP或者浏览器在或者代码中的任何一个角落。</p>
<p> </p>
<p><span style="color: #ff0000;">轮子:</span> <br>alpha3 是轮子的这个说法我不否认。目前来看more就是一个轮子,虽然有一些不同但是它还是轮子。<br>在我的开发计划中,more的特色只有在具备基础架构之后才发展。more在创建之初有一个原则就是核心组建绝对不能依赖第三方jar。扩展功能和集成功能可以依赖第三方jar。这样来保证最大程度的不受组建依赖的影响。 </p>
<p> </p>
<p>目前more还在稳定各个核心组建的过程中,因此核心组建大多数都是已有框架技术的翻版。从alpha4~alpha4开始会陆续增加特色组建,像<span style="color: #ff0000;">表单序列化(解放前后台数据映射和递交问题)</span>、<span style="color: #ff0000;">资源定位(为了<span style="color: #ff0000;">Rest架构做准备工作</span>)</span></p>
<p> </p>
<p> </p>
7 楼 zrzdemon 2010-01-19  
和spring有什么具体的区别吗?
6 楼 qchong 2010-01-19  
又出现了一个轮子。。。
5 楼 lgdlgd 2010-01-19  
牛人啊,关注
4 楼 joehe 2010-01-19  
你重造了不少的轮子,另外很多的代码都是从其他组件里copy过来的
3 楼 metadmin 2010-01-19  
既然打算替代SPRING, 为什么还打算集成SPRING呢?

我建议不集成。
2 楼 ta8210 2010-01-18  
grandboy 写道
目标客户是哪些?可以单独使用某一层吗?


可以单独使用其中任何一层的任何一个组建,有些情况下组建中的工具也可以单独使用。光Beans中就有3个核心组建也可以单独使用不过需要深入了解Beans之后。

目前主要是面向广大开发人员和系统设计人员。
1 楼 grandboy 2010-01-18  
目标客户是哪些?可以单独使用某一层吗?

相关推荐

Global site tag (gtag.js) - Google Analytics