JFox 3

来自开放百科 - 灰狐
跳转到: 导航, 搜索

JFox 3 = 基于IoC的微内核 + Java EE 容器 + MVC框架

我们将JFox 3定位为轻量的 Application Server + 集成的 Application Framework,来支持快速开发

JFox 自己的 Framework 将紧密耦合在 JFox AS 上的,但是用户也可以选择其它的 Framework,没有任何问题

我们在加入了一些 OSGi 的思想在 JFox 3 里面, 如果今后有 OSGi 的要求,我们可以考虑集成一个开源的OSGi 实现来解决这个问题. Apache Felix是个选择方案, JOnAS 5 也采用Apache Felix作为其OSGi的基础

我们这次将给用户提供一个一揽子解决方案,应用很贴近他们的真实需求, 而且会比 Spring + JSF/Struts/Shale + Hibernate 更好用,更好管理

此外, 我们重新构建了 Petstore, 通过一个更加完善的 Petstore 来演示基于 JFox 3 的应用

目录

特性

JFox 3.0在以前版本的基础上进行较大的重构和改进,在尽可能兼容EJB 3规范的同时,保持JFox一直以来坚持轻量、简单、高效、实用的目标。

  • 1.重新设计的 IoC 微内核,融入 OSGi 模块化思想
  • 2.设计成嵌入式架构,能够和任何 Java Web Server集成部署
  • 3.支持 EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件
  • 4.支持EJB发布成Web Service
  • 5.采用JOTM(http://jotm.objectweb.org/)提供事务处理,支持两阶段提交(2PC)
  • 6.采用 XAPool(http://forge.objectweb.org/projects/xapool/) 提供 XA DataSource,支持智能连接池管理
  • 7.内置 MVC 框架,实现自动Form Mapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker页面引擎,并支持直接在Action中注入EJB
  • 8.支持多应用模块部署,让中大型应用充分享受模块化开发的带来的优势
  • 9.提供 Manager 管理模块,可以查看和管理各种运行时参数
  • 10.提供根据 JFox 特色重写的 Petstore 应用模块

标准

JFox 3支持标准如下:

  • 支持EJB 规范 3.0
  • 支持 JPA 规范 1.0
  • 支持JMS 规范1.1
  • 支持JNDI 规范1.2
  • 支持JDBC规范3.0
  • 支持JTA规范1.1
  • 支持Servlet规范2.5
  • 支持JSP规范2.1

架构

JFox 3 Architecture

JFox 包含了3个部分:

基于IoC的微内核

包含在 org.jfox.framework 中, 包含了三个重要的概念: Framework、Module 、Component

  • Framework用来负责启动以及停止内核,同时它也管理整个微内核的资源,以及负责出发和传递事件。
  • Module是模块,一个模块用来完成一个领域的问题,模块拥有封闭性,通过发布接口和其它模块进行交互,模块有自己个独立的ClassLoader,类加载器的加载路径为:conf, classes,WEB-INF/classes,lib,WEB-INF/lib。Framework会根据web.xml中的MODULES_DIR配置加载多个模块,Framework将本身也加载为一个模块,模块名为__SYSTEM_MODULE__。我们可以将一个应用模块做一个Module发布到JFox应用服务器中。
  • Component 即为一个组件,用来实现一个特定的功能,组件被实现为Java类,它们都从org.jfox.frameowkr.component.Component继承而来,组件总是被加载在一个模块中。

尤其要注意 Module 和 Component的区别

Java EE容器

JFox 3提供支持EJB3和JPA组件的Java EE容器,包括服务组件有:JNDI,EJB Container,JTA Transaction Manager,JMS Message Service,JPA Container,DataSource。

MVC框架

JFox 提供MVC框架,它直接建立在JFox 微内核之上, 有了MVC,JFox应用服务器为企业应用开发提供了IoC + MVC + O/R Mapping + EJB3的整套开发平台,以满足企业开发对快速化、模块化的需要。

JFox MVC使用模板引擎(Apache Velocity/FreeMarker)来输出HTML

目前, JFox MVC仅支持将jsp作为模板使用.

在JFox MVC中, Action可以使用@EJB来注入EJB,@Resource从JNDI中注入资源,和在EJB中使用完全一样,这大大简化了Action对EJB容器资源的访问。

可以说,JFox MVC is EJB3 ready!

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱