`
ta8210
  • 浏览: 14940 次
  • 性别: 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  
目标客户是哪些?可以单独使用某一层吗?

相关推荐

    alpha简单易用php框架

    "Alpha简单易用PHP框架"是一个专为PHP开发者设计的轻量级框架,旨在简化Web应用的开发过程,提高开发效率。这个框架以其简洁的结构和易于理解的API...无论你是新手还是老手,都能在这个框架中找到适合自己的工作流程。

    alpha框架_alpha框架_

    通过研究和学习这些文件,开发者可以深入了解Alpha框架的工作原理,以及如何根据项目需求进行定制。 总之,Alpha框架凭借其简洁的结构、强大的功能和易用性,成为了PHP Web开发的一个优秀选择。正确配置和理解相关...

    AlphaZero框架实现_alphazero_alphazero框架实现_

    AlphaZero框架实现是一种先进的强化学习算法,源自DeepMind在2017年提出的著名研究,它在围棋、国际象棋和日本将棋等复杂棋类游戏中取得了超越人类顶尖选手的表现。AlphaZero的核心思想是结合了蒙特卡洛树搜索(MCTS...

    swift-Alpha-iOS的下一代调试框架

    8. **可扩展性和自定义**:作为一个强大的调试框架,Alpha可能允许开发者根据自身需求定制和扩展其功能,以适应不同的项目和工作流程。 在Legoless-Alpha-091b773这个文件中,我们可以期待找到Alpha框架的源代码、...

    Alpha、Beta、RC、GA版本的区别

    RC 版本(Release Candidate),又称为候选发布版,是指在正式发布前的最后一个测试版本。这个版本被认为非常接近最终发布版本,其目的是为了确认该版本是否可以作为最终发布的版本。 **特点:** - **接近最终版本...

    iOS项目框架搭建

    本篇文章将详细介绍如何进行iOS项目的框架搭建,包括常用宏定义文件的创建、自定义控件的设计以及整体架构的规划。 一、项目初始化与目录结构 首先,我们需要在Xcode中创建一个新的iOS项目,选择Single View App...

    netty-all-5.0.0 包含Alpha1 Alpha2

    预发布版本通常在正式版发布前用于测试和反馈,可能包含新功能、改进或修复的bug,但可能不够稳定,适合开发者用于实验性项目或者对新功能的探索。 描述中的"Android netty"表明这是Netty框架在Android环境下的应用...

    AlphaBlend_alpha混合_Alpha_Direct3D_

    通过分析和学习这个示例,开发者可以更好地理解Alpha混合的工作原理,并将其应用到自己的项目中。 总之,Alpha混合是Direct3D和其他图形API中实现透明效果的关键技术。通过理解和实践,开发者能够创建出更逼真、更...

    techpackage.net-手把手教你搭建AlphaZero(使用Python和Keras).pdf

    Techpackage.net-手把手教你搭建AlphaZero(使用Python和Keras) 本文档将教你如何使用Python和Keras搭建AlphaZero系统。AlphaZero是DeepMind阵营的最强棋士,最近Applied Data Science的联合创始人David Foster写...

    SQLDumpSplitter3_0.9.3alpha.zip

    SQLDumpSplitter3_0.9.3alpha是这个工具的一个更新版本,相较于旧版本(如2.x),它提供了对更大文件的支持,并且适用于Windows 64位操作系统。 在标题中提到的"SQLDumpSplitter3_0.9.3alpha.zip"是一个压缩包,...

    netty-all-5.0.0.Alpha3 完整pom.xml配置

    这个“netty-all-5.0.0.Alpha3 完整pom.xml配置”是针对Netty 5.0.0 Alpha3版本的集成配置,包含了该版本所需的全部依赖项,便于开发者在基于Maven的项目中直接引用,避免了手动管理多个jar文件的繁琐过程。...

    安卓android版Auto.JS 4.1.1 Alpha2 (免费版)最后的免费版本

    尽管如此,对于生产环境的重度使用者,正式版可能更可靠。不过,对于个人项目或者学习探索,这个免费版是很好的选择。 "最后的免费版本.txt"可能包含关于这个免费版的一些额外信息,比如发布者可能解释了为何这是...

    bba96 快速开发框架 发布2.0 alpha2

    其中包含了对Hibernate Critiera,Projection的封装,通过一个强大而灵活的QueryObject对象,方便动态添加与删除条件,通过统一的query与数据库交互,方便AOP(随后将发布基于bba96的权限框架,包括灵活的实现数据...

    SmallStruct 3 Alpha 1 (数据库应用框架)

    SmallStruct的特性:SmallStruct是以MVC模式为核心在VCL基础上实现的一个数据库应用框架(仅适用于以数据库为中心的应用),并集成了一些常用的功能:1、在VCL的DataSet导向的数据访问模型上实现了更简易的数据访问...

    bootstrap-5.3.0-alpha1.zip

    预发布版本的出现意味着社区和开发者有机会提前测试新功能,为正式版的发布提供反馈和建议,从而确保Bootstrap的持续改进和优化。无论你是新手还是经验丰富的开发者,Bootstrap都是构建现代Web应用的有力助手。

    D3D9 alpha混合 demo (自定义alpha和纹理自带alpha)

    3. **Alpha测试**:对于带有Alpha信息的纹理,我们可能还需要开启Alpha测试,通过`SetRenderState`设置`D3DRS_ALPHATESTENABLE`为`TRUE`,并指定一个阈值,只有当像素的Alpha值大于这个阈值时才会被绘制。...

    TSC Alpha-3R英文使用说明书.pdf

    TSC Alpha-3R移动条码打印机用户手册 在当今的自动化和信息化时代,条码打印机已经成为商业及工业领域不可或缺的工具。TSC Alpha-3R作为TSC品牌旗下的移动条码打印机,它结合了高效的打印性能和灵活的移动特性,...

    poi-bin-3.0-alpha3-20061212.zip_POI_poi 3.0-alpha3

    这个版本是3.0的Alpha3,发布于2006年12月12日,为开发者提供了对Microsoft Office文件格式的读取和写入能力。 1. **Apache POI 概述**: Apache POI 是一个Java API,它的主要功能是允许Java程序读写Microsoft ...

    Gh0st1.0_Alpha无壳版

    【标题】"Gh0st1.0_Alpha无壳版" 指的是一款名为Gh0st的远程控制工具的早期版本,无壳版意味着该软件没有经过加壳处理,加壳通常用于保护程序代码,防止被反编译或调试。在黑客和网络安全领域,Gh0st这类工具可能被...

    D8S_Alpha_光立方控制软件

    3D8S_Alpha_光立方控制软件 绝对是做光立方的好帮手 希望对大家有用 注意问题: 双击 :3D8S_alpha.exe 打开 光立方上位机软件, 选择COM口---然后选择 57600---点击连接(CONNECT)---选择旁边的任意动画就可以动...

Global site tag (gtag.js) - Google Analytics