介绍几个JAVA的AOP框架开源项目

介绍几个JAVA的AOP框架开源项目,第1张

基于Java的简单、动态、轻量级、强大的AOP框架。既强大又简单,有助于更容易的集成AOP到新的或已存在的项目中。

AspectWerkz 主要特性: 

1 运行时和加载时字节码修正:你可以在运行时或编译时轻松的改造任何(旧)应用程序或除了rtjar以外的外部类库

2 支持join point模型

3 支持Annotation:匹配JavaDoc和JSR-175,支持用户自定义Annotation

4 支持部署多个Aspect定义文件到部署的应用程序(WEB-INF/aopxml、META-INF/aopxml)

5 Introduction/内类型声明(也称Mixin),也就是具有添加接口和实现到已存在的类中的能力

6 Annotation定义:定义Aspect使用的运行时Annotation(为JSR-175准备)

7 XML定义:定义Aspect使用的XML;XML可以用来精炼、改写和解析Annotation定义

8 插件式Aspect管理器能够和IoC框架(如Spring或PicoContainer)一起工作

9 四种不同的Advice和Introduction部署模型(范围):perJVM(单模式)、 perClass、perInstance 和perThread 

10 Advice和Introduction能够动态部署、反部署或重新部署

11 高性能,使用JIT编译

12 使用Fine-grained模式语言选择join point

13 所有Advice能够和所有的join point和各种混合类型的pointcut

14 脱机变换(可以用作后处理器)

15 Aspect、Advice和Introduction使用POJO编码 

16 目标类可以是正规的POJO,也就是不需要接口

17 支持通过定义传递参数给Advice和定义可重用的Advice堆栈

18 元数据被加到类中

19 简单的用法和配置

AspectWerkz在Eclipse下的辅助开发插件→

更多AspectWerkz信息

JBoss AOP 

JBoss 40带了一个AOP框架。这个框架和JBoss应用服务器紧密地结合,但是你也能够在你的应用中,单独的运行它。

更多JBoss AOP信息

Nanning 

一个虽然简单但也是一个java开源的AOP框架。名字以中文的拼音拼写就是广西的南宁。

更多Nanning信息

JAC 

JAC (Java Aspect Components)是一个应用服务器。它为Java2平台、用于Java开发的企业开发环境(J2EE)、和基于Web的分布式应用,提供开放式资源的又一个选择(在GNU次常规公共许可证下发布)。JAC包括统一模型语言(UML)IDE,该UML IDE模块化应用商业逻辑并且自动生成和编译纯商业逻辑Java类。这些类,在JAC容器内执行,可从一组技术和/或商业的横切关系(crosscutting concerns)[1] 如数据持久性、认证、配置文件管理、访问权限检测、演示、和负载平衡中无缝地受益。基于面向方面编程技术(AOP)的JAC将这些关系( concerns)[2]从应用程序的核心商业逻辑中分离出来。

更多JAC信息

DynamicAspects 

DynamicAspects能够让你使用java编写的面向切面的程序设计,它使用在Sun JDK 15中介绍的"instrumentation"与"agent",Aspects能够软件各模块之间的关系在运行期安装与使用。

更多DynamicAspects信息

dynaop 

dynaop框架使用一个基于运行时的编程机制将AOP代码插入对象中,而不是返回一个具有特征代码的对象。AOP将是面向对象设计(OO)的一个新的领域。

更多dynaop信息

CAESAR 

CAESAR是一个新的与Java兼容的AOP语言。所有java程序多能使用CAESAR。

更多CAESAR信息

PROSE 

PROSE是一个动态编排(weaving)工具(允许在运行期插入或抽取aspects)。PROSE aspects是规则的Java对象能够被发送到或从网络上的计算机接收。签名可被用于保证它们的完整性。一旦一个aspect插入到JVM中,任何事件的发生将影响在相应aspect advice执行的结果。假如一个aspect从JVM中撤消,aspect代码将被丢弃并且相应的拦截也将不会再发生。PROSE aspects是规则的Java对象能够被发送到或从网络上的计算机接收。签名可被用于保证它们的完整性。一旦一个aspect插入到JVM中,任何事件的发生将影响在相应aspect advice执行的结果。假如一个aspect从JVM中撤消,aspect代码将被丢弃并且相应的拦截也将不会再发生。下图是PROSE的体系结构图:

更多PROSE信息

FastAOP 

FastAOP是一个高性能AOP框架。最初开发该框架是为了支持对大型J2EE应用程序进行性能剖析和监测。它几乎不占用运行时间。FastAOP已经在Websphere和Jboss应用服务器上得到成功测试。

更多FastAOP信息

Plastic 

Plastic是一个构建在ASM 33之上的AOP工具包。支持类的基本加载和实例化。引进新的属性。不需要使用反射就能够访问私有属性和方法。重写属性访问权限。注入属性。Method advice(在调用现在方法之后/之前执行一些逻辑)。<DIV class=date>收录时间:2011-05-25 15:25:03</DIV>

更多Plastic信息

python常用的8个框架

1Django

Django是一个开放源代码的Web应用框架由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Model)、模板(Template)和视图(Views称为MTV模式。它们各自的职责如下:

模型(Model),即数据存取层处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

模板(Template),即表现层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。视图(View),即业务逻辑层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

2Tornado

Tornado是一种Web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epollf的运用,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架。

3bottle

Bottle是一个Python Web框架,整个框架只有一个文件,几十K,却自带了路径映射、模板、简单的数据库访问等web框架组件,确实是个可用的框架。初学web开发可以拿来玩玩,其语法简单,部署也很方便。

4webpy

webpy是一个轻量级Python web框架,它简单而且功能强大。webpy是一个开源项目。该框架由已故美国作家、Reddit联合创始人、RSS规格合作创造者、著名计算机黑客Aaron Swartz开发。webpy目前已被很多家大型网站所使用。webpy简单易学,只要有Python基础,掌握webpy就非常容易。

5Flask

Flask是一个使用Python编写的轻量级Web应用框架。其WSGl工具箱采用Werkzeug模板引擎则使用Jinja2。Flask使用BSD授权。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

6pyramid

Pyramid是一个小型,快速的Python webframework,是Pylons Project的一部分,采用的授权协议是BSD-like license。Pyramid吸取了Zope、Pylons和Django的优点,适合开发大型项目,也适合小项目,拥有非常好的性能。

7scrapy

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、!监测和自动化测试Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web20爬虫的支持。Scrap,是碎片的意思,这个Python的爬虫框架叫Scrapy。

8pandas

pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。它是使Python成为强大而高效的数据分析环境的重要因素之一。

Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。Istio为希腊语,意思是”起航“使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。你只需要在部署环境中,例如Kubernetes的pod里注入一个特别的sidecar proxy来增加对istio的支持,用来截获微服务之间的网络流量。

特性:

使用istio的进行微服务管理有如下特性:

流量管理:控制服务间的流量和API调用流,使调用更可靠,增强不同环境下的网络鲁棒性。可观测性:了解服务之间的依赖关系和它们之间的性质和流量,提供快速识别定位问题的能力。

策略实施:通过配置mesh而不是以改变代码的方式来控制服务之间的访问策略。

服务识别和安全:提供在mesh里的服务可识别性和安全性保护。

未来将支持多种平台,不论是kubernetes、Mesos、还是云。同时可以集成已有的ACL、日志、监控、配额、审计等。

正是 Istio 的出现使 “Service Mesh”( 服务网格 ) 这一概念开始流行起来。在深入介绍 Istio 的细节之前,让我们首先简单地了解一下 Service Mesh 是什么,以及它的重要性体现在哪里。我们都已经了解单体应用所面对的挑战,一种显而易见的方案是将其分解为多个微服务。虽然这种方式简化了单个服务的开发,但对于成百上千的微服务的通信、监控以及安全性的管理并不是一件简单的事。

直至目前,对于这些问题的解决方案也只是通过自定义脚本、类库等方式将服务串联在一起,并且投入专门的人力以处理分布式系统的管理任务。但这种方式降低了各个团队的效率,并且提高了维护的成本。这正是 Service Mesh 大显身手的时机

Istio以及Service Mesh的未来

  

  

  C#开源项目(国外的还是很多) 一、Ajax框架 AjaxNET Professional

(AjaxPro)是最先把AJAX技术在微软NET环境下的实现的AJAX框架之一。它在客户端脚本之上创建代理类来调用服务器端的方法。

MagicAjaxNET是一款在ASPNET下创建Web页面提供AJAX技术的框架。它使开发人员很容易把AJAX整合到他们的页面而不需要替换ASPNET控件或自己写javascript脚本代码。

AnthemNET是为ASPNET开发环境提供的开源AJAX工具包,它可以运行于ASPNET 11和20。

  二、工作流(workflow)

WorkflowNet是使用微软Net技术基于wmfc标准的创建工作流引擎。

NetBPM是JBpm移植到net平台下的一款开源工作流软件。NetBpm可以很容易和Net应用程序集成在一起,可以创建,执行和管理工作流程序。 Bpm

Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。

  其实微软自己的WPF做WorkFlow也很厉害。

  三、文本编辑 FCKeditor是一款功能强大的开源在线文本编辑器(DHTML

editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。它是轻量级且不必在客户端进行任何方式的安装。 FreeTextBox

是一个基于 Internet Explorer 中 MSHTML 技术的 ASPNET 开源服务器控件。这是一款优秀的自由软件(Free

Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web

系统中都会有用途。 VietPad是一个功能完整的跨平台的Java/NET的Vietnamese

Unicode开源文本编辑器。支持打开,编辑,打印,转换,排序,和保存基于文本的Unicode格式的Vietnamese文件。

NetSpell是一款NET框架下的开源拼写检查引擎。 PPC_edit是一款应用在Pocket PC上的开源文本编辑器,它支持TXT, RTF, HTML,

WordML, DocBook 和 ZIP格式的文件,屏幕上会显示国际标准的软键盘。

  四、博客(Blog)

NovaShare是一款Blog引擎,它使你创建基于交互式的web的新闻和论坛网站,很像WonkoSlice或Slashdot。管理员可以发布文章和发起投票,浏览者可以创建用户帐号,发表议论等等。

dasBlog是从BlogX 网上日志引擎发展而来。像Trackback ,Pingback

一样增加许多附加的特征,有完整的Blogger/MovableType

API支持,API注释,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和内嵌,基于WEB的

DHTML,OPML,配置的编辑器。 DotText是一个被使用了数百个blogs的强劲的blog引擎。这是一个N-tiered应用的例子。

tBlogger是一个C#开发的完整的blog网站程序,使用XML配置。

  Blog现在可以使用MVC的其他开源项目来构建,这些项目在codeplex上有很多,其中微软自己的就有OXite。

  五、系统构建

  NETZ是一款免费开源工具,它可以压缩和打包微软 NET 框架可执行文件(EXE,

DLL)以使他们更小。更小的可执行文件占用的磁盘空间较少且因为读取文件时对磁盘的访问较少而使读取数度更快。它和PE(portable

executable)打包工具不一样,NETZ是使用 C# 编写的存粹的 NET 解决方案。NETZ可以用来打包几乎每一种 NET

支持的语言编写的程序。NETZ支持 NET EXE 和 非共享(non-shared)的 DLL

文件。压缩过的程序能以相同的方式解压缩这些对最终用户是透明的。 NAntContrib为NAnt提供定制任务的工具。

Prebuild是XML驱动的一款跨平台pre-build工具,使开发人员很容易就可以为IDE和NET开发工具生成项目或构建文件。它支持 Visual

Studio NET 2002, 2003, 2005, SharpDevelop, MonoDevelop 和 NAnt。

BusyBeeBuilder是NET平台下功能强大,易于使用,可扩展的开源构建自动操作工具。 DracoNET 是 Windows

服务应用程序。它的设计使其容易持续的集成新特性。DracoNET监视你的源代码储存库。当探测到你的项目有变化时自动重新创建项目并把包含变化列表的创建结果发送到你的Email。

Build Studio为软件的自动构件处理提供了一套完整的解决方案。 CruiseControlNET是NET平台下的一款整合服务器。

NAnt类似Apache项目下的Ant,是Net下的开源构建工具。适用在自动编译NET应用的场合,如NET项目的每日构建(nightly

build)。

  说老实话,我并不认为系统构建工具的作用真的有那么强大,如果你真的计划做一个很大的项目,且持续开发时间很长,那么你可以使用上面的系统构建工具。

  五、图表制作

  ZedGraph是C#编写的NET类库,提供了用户控件和web控件。它可以创建2D的线性图、条形图和饼图。它功能完整且有详细的功能自定义,不过

使用默认的选项就足够好用了。一款类似 PieChart, StackBar, LineChart的C#开源图表组件。

NPlot是一款NET下的开源图表类库它值得称道的地方是优雅且灵活的API设计NPlot包含了Windows Form控件,

ASPNET控件和一个创建Bitmap的类。还有一个可用的GTK#控件。 XSCharting是C#开发的图表组件,提供了多种多样的图表选项。

DaveChart是一个免费的DotNet类库。 NChart 提供了很多值得应用在商业,教育等多个领域的2 D图表。

  微软自己已经提供了一个chat绘制控件,也就是原来的dunat,如果那个可以满足你的要求,那么完全没有必要使用上面的。但是如果你需要研究画图,作自己定义的chat,那么这些开源的项目将对你有很大的帮助。

  六、聊天系统

  Dot Net Chat

server是基于DotNet框架开发的聊天服务器和客户端项目。说老实话,我对这个很感兴趣,有时间,要瞧瞧它的代码是咋实现的。

  七、内容管理系统(CMS)

  Ludico是C#编写的居于ASPNET

20的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。

mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASPNET 和GNU/Linux 或Mac OS X的Mono的平台上。

Cuyahoga是C#开发的灵活的CMS / Portal 解决方案。它可以运行于Microsoft NET 和Mono 平台,支持SQL Server,

PostgreSQL或MySQL作为底层数据库。 Umbraco是一款在net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。 Kodai

CMS是NET平台下的一款功能齐全的内容管理系统。 Rainbow项目是一款使用Microsoft’’s

ASPNET和C#技术开发的有丰富功能的开源内容管理系统。 NkCMS是使用ASPnet和Sql server 2000开发的内容管理系统。

Amplefile是一款内容管理系统,是Net环境下的windows应用程序,使用了Net remoting

GoKryo是一个用ASPNET(C#)NET 实现的简单的内容管理系统,后台数据库使用Microsoft SQL Server 。 ndCMS是

ASPnet

(C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署Net站点以节省你的时间和金钱。

  这些开源的CMS我试用了几个,说真的,拿来研究可以,要真的实施,估计很难。

  九、论坛系统

  YetAnotherForum可以作为ASPNET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。

  十、安装制作

  izfree是一套套免费的工具用于帮助创建使用Microsoft”’’s Windows

Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。

  Windows Installer XML

(WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和MSM安装包一个可以和商业软件安装产品相比的开源打包工具。

  一般的需求试用VS

自带的就可以了,更复杂的需要用到InstallShield,这样看起来开源的就没啥意义了。

  十一、IoC容器

  Springnet是从java的Spring

Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Springnet都有提供。Springnet最初发布的版本包含了一个很有特色的IoC容器。

  Castle是一组应用开发的工具,内含一个简单的IoC容器。

  StructureMap是NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的NE

  我用过StrucutureMap,但是给我的感觉是,试用这个似乎没多发帮助。

  十二、网络客户端

  NET FTP Client是C#编写的开源类库。

  NET Telnet是微软NET

Framework下的C#开发的开源telnet类库。它的灵感来至Java Telnet Application。

  metro这个项目是C#编写的类库,它提供了一套丰富的类使开发IP version 4, TCP,

UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,网络分析工具例如路由跟踪,ping等。

  LJNET是LiveJournal站点的客户端。它为LJ在线日志服务提供了简单而强大的用户接口。

  NET VNC Viewer 是一款完全用C#开发的开源VNC观察器。它兼容Smartphones,

Pocket PC和Windows的电脑(NET CF or NET Framework)。它比起其它观察器的优点是可以在Pocket

PC上全屏显示而且可以旋转屏幕。

  GVDownloader允许你从google videos, metacafe, putfile,

youtube, breakcom 和更多的地方快速下载内含的视频和多媒体。它的包含一个强劲IE插件和位于你系统托盘的独立程序。

  DotNetOpenMail能够使你在微软net框架开发的aspnet,

WinForm应用程序发送Email。它是C#编写的开源组件,它不需要使用SystemWebMail类库就可以容易的创建带附件HTML和

Plain-text的Email。程序员不需要知道很多相关的细节就可以使用不同的字符集或不同的MINE编码来创建

multipart/alternative,multipart/related和multipart/mixed的MIME消息。

  DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN

Messenger就可以使用DotMSN和MSN

Messenger服务通信DotMSN是C#编写的,所以NET环境支持的语言都能够使用DotMSN类库使用简单而且实现方便。它灵活,坚固,

轻量级利于整合到任何应用系统使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能如果你的应用程序需要和

Messenger服务通信,DotMSN是一个不错的工具

  SharpSSH使用C#实现了SSH2协议,它支持SSH, SCP 和 SFTP

  OpenPOPNET一组和POP Servers通信的NET类库。

  IceChat是为连接多样的IRC Servers设计的Internet Relay Chat

Client。

  lphant是为edonkey/emule开发的开源客户端程序。

  NET FTP Client C#开发的类库。

  OpenSmtpnet 是 C# 开发的开源SMTP组件。它不依赖NET Framework

的SystemWebMail 包中的类。允许开发人员使用不同于MS SMTP的SMTP 服务器且提供了web

service而可以通过HTTP发送email。

  这里面有几个值得推荐,例如DotMsn这个,在某些场合就很有用处。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 介绍几个JAVA的AOP框架开源项目

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情