轻量级Java框架
介绍
一个轻量级Java框架
- oxygen-core
- 配置管理,支持${attrs.key:defaultValue}表达式获取配置
- 加解密管理,提供加解密服务内置基础加密实现,例如SHA-1、SHA-256、MD5
- 异常管理,提供异常包装,统一异常编码,便于国际化
- i18n国际化
- 资源文件加载,提供file,jar,classpath等文件加载
- 类扫描器
- 部分工具类
- retry重试
- oxygen-ioc
- 基于构造器的轻量级依赖注入
- oxygen-aop
- 基于cglib实现的切面
- 轻巧简单,可单独使用
- 可使用注解Aspect或直接实现Interceptor编写切面
- oxygen-cache
- 内置Ehcache和LocalCache缓存
- 提供基于注解Cacheable的方法缓存
- oxygen-job
- 提供基于注解Scheduled的定时任务
- oxygen-jdbc
- 小巧简单的jdbc实现,纯jdk实现,无第三方jar
- 支持多数据源
- 基于sql进行crud,不提供类似Hibernate的链式方法(原因:sql作为数据库领域的DSL,已经很自然优雅,Less is more)
- oxygen-web
- 轻量级web框架支持注解声明和函数式编程
- 支持Servlet3.0 ServletContainerInitializer 自动加载,省略web.xml
- 支持i18n动态切换
- 提供WebHook进行请求拦截处理
- 支持自定义全局异常处理
特性
- 轻量级,使用简单
- 支持插件扩展
- 函数式编程
- 流式风格
快速开始
创建Maven项目
-tomcatvip.justlive oxygen-web${oxygen.server} ${oxygen.version}
或Gradle
compile 'vip.justlive:oxygen-web-tomcat:$oxygenVersion'
不需要webapp项目框架,支持Servlet3.0
编写 main 函数写一个 Hello World
public static void main(String[] args) { Router.router().path("/").handler(ctx -> ctx.response().write("hello world")); Server.server().listen(8080);}
用浏览器打开 http://localhost:8080 这样就可以看到 hello world 了!
内容详解
- 注册路由
- 硬编码方式
- 注解方式
- 获取请求参数
- 表单参数或json请求参数
- restful参数
- header参数
- cookie参数
- 参数转对象
- 静态资源
- 上传文件
- 结果渲染
- 渲染json
- 渲染文本
- 渲染html
- 渲染模板
- 重定向
- 写入cookie
- 添加header
- 写入session
- 拦截器
- 异常处理
- 部署项目
- 修改端口
- 运行项目
注册路由
硬编码方式
Router.router().path("/").handler(ctx -> ctx.response().write("hello world"));Router.router().path("/get").method(HttpMethod.GET).handler(get);Router.router().path("/post").method(HttpMethod.POST).handler(post);
注解方式
@Router("/book")public class BookRouter { // 视图 @Mapping("/") public ViewResult index() { return Result.view("/book.html"); } // json @Mapping(value = "/ajax