8 Star 14 Fork 2

frost373/OneJava

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

##OneJava是什么? 一个基于Java的一站式WEB开发框架,框架的设计原则是简洁、灵活和降低学习成本。 OneJava除了一些基本的依赖(日志,Cglib等),不需要集成其他框架,而是实现了自己的MVC、AOP、IOC、持久层。

正因为如此OneJava可以提供一种几乎无需配置、极易学习的一站式开发体验。

##OneJava有哪些功能和特色?

  • 遵循COC原则,无XML
  • 极简的编程风格
  • MVC的设计模式
  • 用目录结构来创建请求映射规则,解决XML配置麻烦和@注解不宜管理的问题
  • 前置后置拦截器链
  • AOP支持,四种链式通知类型
  • IOC支持,也可轻易的集成Spring
  • 多种Plugin,扩展性强
  • 多种视图和自定义视图支持
  • ibatis风格+ActiveRecord的持久层
  • 声明式和优雅的手动式嵌套事务管理

##以下是一个简单的实例,业务为: GET一个ID,返回所有文章的列表,请求要使用AdminLogin,count两个前置拦截器 (这两个拦截器是本包下所有控制器都要使用)和postLog后置拦截器 ###控制器:

package work.action.test;
//映射关系自动生成为:URL+/test/helloworld.do
@ActionInfo(after = "count")//后置拦截器链
public class HelloWorld {
	@IService
	public HelloService hello;//注意!无需get、set方法,但必须是public
	public String excute(MContext context) throws Exception{
		List list =  hello.getPost((String) context.getValue("id"));
		context.setReValue("list", list);
		//使用默认视图,使用WEB-INF下的test/helloword.jsp
		return "test/helloword";
		//return "json,list";//使用Json视图
	}
}

###创建package-info为work.action.test下的所有控制器添加拦截器

@ActionInfo(before = "AdminLogin,count")
package work.action.test;

###服务层

@ServiceInfo(name = "hello")//标记service的信息
public class HelloService {
    @TX//声明式事务(虽然这个事务没啥用)
	@IAop(before = "beforeLog,beforeLog2",afterThrow="errorLog")//通知的切入点
	public List getPost(String id) throws Exception{
		Map map = new HashMap();
		map.put("id", id);
		List list =  DB.query("select * from post where id=#id# ", map);
		return list;
	}
}

####AOP的通知和拦截器就不写了,形式和服务层一样,用注解@XXXinfo声明下就可以,OneJava所有模块的风格都几乎是一样的 ##OneJava的案例 ####我的博客:http://www.lalalol.com/

##OneJava的架构和设计 alt text

  • 整体架构就如同一个分布式系统,Tools提供基础支持,Manage负责管理实体类的整个生命周期,并向外提供功能的接口。Controller调用Manage完成请求的完整逻辑,同时Manage之间也会有互相调用。 这种结构十分清晰明了,模块间只是提供接口,其他互不干涉。 alt text

##开发进度

  • ActiveRecord 开发中
  • 更多嵌套事务 待开发
  • 事务隔离级别 待开发
  • 代码重构 开发中
  • AOP模版 设计中

空文件

简介

A lightweight One-stop JavaWeb Framework 轻量级的一站式JavaWeb开发框架 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/frost373/OneJava.git
git@gitee.com:frost373/OneJava.git
frost373
OneJava
OneJava
master

搜索帮助