高效 Java Web 开发框架 JessMA v3.5.1 正式发布

简介:

JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截、Form / Dao / Spring Bean 装配、国际化、文件上传下载和页面静态化等基础 Web 应用组件,提供高效灵活的纯 Jsp/Servlet API 编程模型,可完美整合 Spring / Guice,支持 Action Convention,能快速开发传统风格和 RESTful 风格应用程序,文档和示例完善,非常容易学习。

JessMA 官方网站:http://www.jessma.org
OSChina 项目主页:http://www.oschina.net/p/portal-basic

Git@OSC:http://git.oschina.net/ldcsaa/JessMA

Github 下载地址:https://github.com/ldcsaa/JessMA
在线示例:http://demo.jessma.org
在线 API 文档:http://www.jessma.org/doc

JessMA 在设计之初就充分注重功能、性能与使用体验。JessMA 主要特点:

 功能全面:内置稳定高效的 MVC 基础架构和 DAO 框架,支持 Action 拦截、Form Bean / Dao Bean / Spring Bean 装配和声明式事务,提供国际化、文件上传下载、缓存和页面静态化等常用Web组件,能满足绝大部分 Web 应用的需要。 
 高度扩展:JessMA 通过的 plug-in 机制可以灵活扩展,JessMA 发布包中自带的 jessma-ext-rest 和 jessma-ext-spring 均以插件的形式提供,用户可根据需要加载或卸载这些插件。应用程序开发者也可以根据实际需要编写自定义插件来扩展 JessMA。 
 强大的整合能力:JessMA 是一个 Full-Stack 框架,同时也是一个开放式框架,可以以非常简单的方式整合第三方组件。本开发手册会详细阐述如何在 JessMA 中整合 Freemarker、 Velocity 、 Urlrewrite、 EHCache-Web 、 Spring 、 Hibernate 和 Mybaits 等常用框架和组件。 
 高性能:性能要求是 JessMA 的硬性指标,从每个模块的设计到每行代码的实现都力求简洁高效。另外,Portal-Basi c并没有对 JSP/Servet API 进行过多封装,开发者仍然使用 JSP/Servet API 开发应用程序,没有过多的迂回,性能得到保证。 
 优秀的使用体验:JessMA 的设计目标之一是提供良好的开发体验,尽量减少应用程序开发者的工作,API 的设计力求简单、完整、明确。同时,JessMA 为应用开发提供了大量 Util 工具,用来处理应用程序开发过程中通常会遇到的一般性问题,进一步减少应用程序开发者的工作负担。 
 平缓的学习曲线:学习使用 JessMA 只需掌握一定的 Core Java 与 JSP/Servlet 知识,本开发手册会循序渐进阐述每个知识点,每个知识点都会结合完整的示例进行讲述,知识点之间前后呼应,确保学习者在学习时温故知新,融会贯通。 
 完善的技术支持:除了提供完善的开发手册和示例代码以外,还提供博客和 QQ 群用于解答使用 JessMA 过程中碰到的所有问题,也可以访问 JessMA 官方网站了解更多资讯。
  • JessMA 总体架构image
    JessMA主要包括以下5个部分:
● 基础应用框架

基础应用框架加载应用程序配置文件(默认:app-config.xml),监听应用程序的生命周期事件,并向上层应用发送应用程序启动和关闭通知,应用程序可以处理这些通知进行额外的初始化或清理工作。基础应用框架在org.jessma.app包中是实现。

● MVC框架

MVC框架加载MVC配置文件(默认:mvc-config.xml),通过前端控制器ActionDispatcher接收和解析所有的客户HTTP请求,然后交由相应的Action进行处理,最后生成相应的视图返回给客户端。MVC框架在org.jessma.mvc包中实现。

● DAO框架

DAO框架封装了所有的数据库访问操作,内置JDBC、Hibernate和MyBaits数据库访问组件以及Druid、Proxool、JNDI等连接池。DAO框架是可扩展的,用户可以通过扩展org.jessma.dao.AbstractFacade和org.jessma.dao.AbstractSessionMgr实现自己的数据库访问组件。DAO框架在以下包中实现:
▪ org.jessma.dao
▪ org.jessma.dao.hbn
▪ org.jessma.dao.jdbc
▪ org.jessma.dao.mybatis

● 公共组件

公共组件提供多种通用功能帮助类(如:字符串处理、类型转换、分页算法、压缩/解压、加解密、邮件发送等),这些类与框架无关,可在任何应用程序中使用。公共组件在以下包中实现:
▪ org.jessma.util
▪ org.jessma.util.archive
▪ org.jessma.util.http
▪ org.jessma.util.mail

● 扩展插件

扩展差插件是基于JessMA核心框架基础上的功能延伸,不是JessMA的必要组件。可由应用程序开发人员根据需要自行定制。JessMA发行包中也自带了一些扩展插件(如:jessma-ext-spring和jessma-ext-rest)。
  • JessMA 应用程序依赖关系
基础应用框架、MVC框架和DAO框架都依赖于公共组件,其中基础应用框架同时依赖于DAO框架,因此,MVC框架和DAO框架能脱离JessMA单独使用(当然,要附带上公共组件)。例如:可以把MVC框架和DAO框架用于JessMA之外的其它Web项目;也可以把DAO框架用于非Web项目(如:Swing / SWT桌面应用)。

JessMA 3.5.1 更新:

1、JessMA 3.5.1 使用 Maven 进行构建和发布管理

1) JessMA core

<dependency>
    <groupId>org.jessma</groupId>
    <artifactId>jessma-core</artifactId>
    <version>3.5.1</version>
</dependency>

2) JessMA RESTful 扩展

<dependency>
    <groupId>org.jessma</groupId>
    <artifactId>jessma-ext-rest</artifactId>
    <version>3.5.1</version>
</dependency>

3) JessMA Guice 扩展

<dependency>
    <groupId>org.jessma</groupId>
    <artifactId>jessma-ext-guice</artifactId>
    <version>3.5.1</version>
</dependency>

4) JessMA Spring 扩展

<dependency>
    <groupId>org.jessma</groupId>
    <artifactId>jessma-ext-spring</artifactId>
    <version>3.5.1</version>
</dependency>

2、日志组件使用 slf4j 替代 Log4j
1) JessMA Logger 对象获取方式:org.jessma.util.LogUtil.getJessMALogger()
2) 其它 Logger 对象获取方式:org.jessma.util.LogUtil.getLogger()

3、其它更新
1) 依赖包更新到最新版本
2) 增加 Maven 示例工程 jessma-sample-hello 和 jessma-sample-set
3) 更新开发手册《JessMA Java Web 应用开发框架 (v3.5.1)》

文章转载自 开源中国社区 [http://www.oschina.net]

目录
相关文章
|
8天前
|
开发框架 JavaScript 前端开发
如何选择合适的Web开发框架?
【9月更文挑战第1天】如何选择合适的Web开发框架?
26 1
|
2天前
|
Web App开发 前端开发 JavaScript
Web前端项目的跨平台桌面客户端打包方案之——CEF框架
Chromium Embedded Framework (CEF) 是一个基于 Google Chromium 项目的开源 Web 浏览器控件,旨在为第三方应用提供嵌入式浏览器支持。CEF 隔离了底层 Chromium 和 Blink 的复杂性,提供了稳定的产品级 API。它支持 Windows、Linux 和 Mac 平台,不仅限于 C/C++ 接口,还支持多种语言。CEF 功能强大,性能优异,广泛应用于桌面端开发,如 QQ、微信、网易云音乐等。CEF 开源且采用 BSD 授权,商业友好,装机量已超 1 亿。此外,GitHub 项目 CefDetector 可帮助检测电脑中使用 CEF
27 3
|
5天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
|
8天前
|
Java 数据库连接 Apache
Java进阶-主流框架总结与详解
这些仅仅是 Java 众多框架中的一部分。每个框架都有其特定的用途和优势,了解并熟练运用这些框架,对于每一位 Java 开发者来说都至关重要。同时,选择合适框架的关键在于理解框架的设计哲学、核心功能及其在项目中的应用场景。随着技术的不断进步,这些框架也在不断更新和迭代以适应新的开发者需求。
24 1
|
4天前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
12 0
|
9天前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
20 0
|
9天前
|
数据库 开发者 Java
Hibernate映射注解的魔力:实体类配置的革命,让你的代码量瞬间蒸发!
【8月更文挑战第31天】Hibernate 是一款出色的对象关系映射框架,简化了 Java 应用与数据库的交互。其映射注解让实体类配置变得直观简洁。本文深入剖析核心概念与使用技巧,通过示例展示如何简化配置。
16 0
|
9天前
|
数据库 开发者 Java
数据战争:Hibernate的乐观与悲观锁之争,谁将主宰并发控制的王座?
【8月更文挑战第31天】在软件开发中,数据一致性至关重要,尤其是在多用户并发访问环境下。Hibernate 作为 Java 社区常用的 ORM 框架,提供了乐观锁和悲观锁机制来处理并发问题。乐观锁假设数据不易冲突,通过版本号字段 (`@Version`) 实现;悲观锁则假定数据易冲突,在读取时即加锁。选择哪种锁取决于具体场景:乐观锁适合读多写少的情况,减少锁开销;悲观锁适合写操作频繁的场景,避免数据冲突。正确应用这些机制可提升应用程序的健壮性和效率。
19 0
|
9天前
|
Java Maven Android开发
解锁Web开发新技能:从零开始的Struts 2之旅——让你的Java编程之路更加宽广,首个应用实例带你飞!
【8月更文挑战第31天】对于初学者,掌握 Struts 2 框架不仅能提升 Web 开发能力,还能深入了解 MVC 架构。Struts 2 是一个基于 Servlet 的 Java 框架,提供表单验证、文件上传、国际化等功能,便于快速构建易维护的 Web 应用。本文通过示例演示如何从零开始搭建环境并创建一个简单的 Struts 2 项目,包括配置 `struts.xml`、编写 Action 类及视图文件,并配置 web.xml。通过这些步骤,你将学会基本的开发流程,为进一步学习高级功能打下基础。
21 0
|
9天前
|
Java 开发者 数据安全/隐私保护
Struts 2 拦截器机制震撼登场!紧跟技术热点,解锁高效开发密码,引发开发者情感共鸣
【8月更文挑战第31天】在 Java Web 开发中,Struts 2 框架凭借其强大功能和灵活性深受开发者喜爱。其中,拦截器机制是 Struts 2 的重要特性之一,它允许我们在请求处理过程中执行自定义操作,如日志记录、权限验证和数据转换等。拦截器通过实现 `com.opensymphony.xwork2.interceptor.Interceptor` 接口并在 `struts.xml` 中配置即可使用。合理利用拦截器可实现代码解耦与复用,提升开发效率和系统可维护性。框架还提供了如 `params` 和 `servletConfig` 等内置拦截器供开发者按需选用。
16 0
下一篇
DDNS