# bubble **Repository Path**: haithomson/bubble ## Basic Information - **Project Name**: bubble - **Description**: Java WEB快速开发框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2017-04-14 - **Last Updated**: 2023-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 简介 ----------- Bubble是一个基于Java Servlet的全栈Web框架。
Bubble结合了性能和开发效率,只需具备基础的Java WEB开发知识就可快速上手。
Bubble高度模块化,采用无状态设计,具备多级缓存能力;是开发高性能,可伸缩Web Application的理想框架!
组成模块 -----------
Controller 基于'Servlet 3.1'的控制器
Global 数据集装箱
View 视图适配器,支持JSP, JSON, Beetl, Velocity
Container 简易IOC容器
AOP 为开发者提供面向切面编程支持
DB 基于'Apache Commons DbUtils Version 1.6'重构的持久化模块
Session 无状态Session.提供In-Memory RDBMS Struts, In-Memory RDBMS, Redis三种版本
Cache 缓存系统.内置文件, 内存, 数据库缓存.内存支持Map, Redis, Memcache, Guava Cache, Ehcache
Staticize 页面静态化工具, 支持页面缓存到Cache模块
Log 日志记录模块,支持超高并发,丝毫不影响应用性能
OGNL 简易的对象导航访问工具
Security 安全工具套装:安全令牌, 验证码, SQL检查, XSS检查, 蜘蛛检查
Plug-in 插件系统,支持运行期间安装卸载
Cron 计划任务
Miscellaneous 解决WEB开发中经常碰到的问题
下载使用 ----------- ### 环境准备 JDK         :JDK1.8+
WEB容器:支持Servlet 3.1标准的WEB容器.推荐使用Apache Tomcat Version 8.0.23+
数据库     :推荐使用支持In-Memory技术的RDBMS.推荐使用MySQL 5.5+, Oracle 12c, SQL Server 2014
IDE          :推荐使用IntelliJ IDEA 14.1.5+
### 详细步骤 1.创建WEB开发项目,项目编码格式UTF-8,修改WebContent目录为"web",配置相关运行环境
2.将源码包中的文件拷贝到对应目录
3.创建数据库,导入sql文件内对应类型的SQL
4.修改配置文件/web/config/c3p0-config.xml中“jdbcUrl”,“user”,“password”配置项
注意: Bubble默认开启FileCache和Log,所产生的文件保存在WEB容器启动目录.可通过/web/config/GlobalConfig.json更改文件保存位置
5.编译运行
快速入门 ----------- 1.编写访问控制层代码
``` @WebServlet(name = "EconomyController", urlPatterns = "/economy/*") public class EconomyController extends ActionSupport { public String index() { try { Economyindex.run(); return "/economy/index.jsp"; } catch (Exception e) { return Controller.ERROR; } } } ``` 2.编写数据操作层代码
``` public class common_session_struct extends Table { public common_session_struct() { super("common_session_struct", "sessionid"); } public Map fetchAll() throws SQLException { String sql = "SELECT * FROM " + DB.getRealTableName(this.tableName); return DB.queryAll(sql); } } ``` 3.编写业务模块
``` public class Economyindex { public static void run() throws NoSuchMethodException, InvocationTargetException { Container.app().Global.put("allsession", Container.table("common_session_struct").call("fetchAll")); } } ``` 4.编写展示层代码
以JSP为例
```
All Session:
${Global["allsession"]}
```