#jWeb
写在前面
团队内部使用的一套web开发框架,稳定使用多年,特分享与开源者共勉。
取其精髓,去其糟粕
没有最好,只有最适合,选择框架最适合你的部分,或者对你有所启发的。
maven管理,可持续集成。
maven管理的所有依赖、插件都应该具有可替代性,并且可以一直更新。当然,包括jdk版本。
目前项目需要更新为jdk8。
项目零配置,基于注解的开发模式,易上手
基于Struts2 convention,spring4,hibernate5的全注解配置。在可持续集成的理念下,struts2可以完全切换为spring mvc,同时hibernate也可以切换为ibatis.
一个极简的action方法可以像下面这么简单:
lambda表达式,可以直接在Action层写业务逻辑
@Action("/example/testForTransaction")
public void testForTransaction() {
logger.info("testForTransaction");
MyExample myExample = new MyExample();
myExample.setExpStr("中文字段测试");
fooGenericService.runInTransaction(() -> {
logger.info("saving...");
fooGenericService.save(myExample);
if (1 == 1) {
throw new RuntimeException("if you see this error,it means internal test only...");
}
});
FooUtils.printSuccessJson(response, myExample);}
零学习曲线,原生api
在经典的actio,dao,service模式上改进,封装了dao层和service层。无须再新建dao层,service层按需添加,专注于action层开发
action类已经定义好原生的request,response,只需要继承公用类,所有方法即可使用:
快速迭代开发。
tomcat独有配置模式,在开发过程中,除了新增类,新增类方法,更改web.xml等情形需要重启服务,其他情况均不需要重启。
tomcat指向工程启动,无任何项目拷贝,急速启动服务。
不要过度依赖,充分解耦
除了el表达式,页面不使用任何标签,只有原生html标签和js。
Model至上,业务至上,团队开发规范至上
在model里面表达多一些的信息会带来意想不到的效果。具体参见:
框架辅助工具
一键生成增删查改所有前后台代码的的实用类,检查maven依赖,一键打包工具,等等。
了解边界
很多看起很美好的开源框架在需求很复杂的情形下都会快速失效,你需要知道技术的边界。
例如hibernate处理几十万条数据的批量insert或者update的时候将会无能为力,这时候你需要jdbc,这就是hibernate的边界。具体参考:mylink
更多