欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
JFox 3
第37行: | 第37行: | ||
[[Image:jfox3-arch.jpg|right|thumb|JFox 3 Architecture]] | [[Image:jfox3-arch.jpg|right|thumb|JFox 3 Architecture]] | ||
JFox 包含了3个部分: | JFox 包含了3个部分: | ||
− | + | ===基于IoC的微内核=== | |
− | *Java EE容器 | + | 包含在 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。 | 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! |
2008年3月24日 (一) 15:58的版本
JFox 3 = Web Server(Tomcat/Jetty/Resin) + EJB 3 container + Spring + JSF/Struts/Shale + Hibernate
我们将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 特性
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个部分:
基于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!