如何搭建合适的Web框架?
对付赋值来说,Spring提供了BeanUtils来简化处理赏罚,固然是基于反射来设值的,可是对付现阶段来说,这点机能消费照旧没什么影响的。可是,BeanUtils对付差异范例的属性不能举办拷贝,假设我有一个Domain工具Book,内里有个字段Author,此刻我要赋值给BookResult,个中有个字段AuthorResult,此时BeanUtils是无法赋值的。以是我编写了一个基于Gson的器材类来处理赏罚,机能测试10000次的属性拷贝BeanUtils必要500多毫秒,基于Gson的器材类只必要300毫秒阁下。 对付表字段的天生,假如行使的是IDEA的话,IDE默认提供了一个剧本,可以从表来天生POJO!我们可以行使这个脚原来天生Model,然后将字段拷贝到Param和Result中,来简化字段的编写。我对这个剧本举办了修改,以切合项目需求。首要增进了lombok的支持,新增了类注释和字段注释。 替代代码天生 对付上面代码天生组件的题目,我调解了代码天生的方法。不再基于组件来天生,而是基于IDEA自己的FileTemplate、LiveTemplate以及Scripted Extensions来举办天生。固然这样的方法,不可以或许一次性天生多个文件,可是因为天生逻辑根基是一次性的,以是影响不是很大。在首次天生代码时,代码天生组件的服从是高于FileTemplate、LiveTemplate以及Scripted Extensions的组合,可是后期调解的机动性,明明是FileTemplate、LiveTemplate以及Scripted Extensions的组合要高于代码天生组件的:
详细的操纵流程,在下面演示。 独立营业逻辑 针对Service和测试的题目,将原本的Controller、Service和Model三层,拆分为四层:
这样Service的职责减轻了,同时不再有事宜嵌套的题目。 Model层优化 上面提到,框架中最终放弃了Mapper.xml,转而行使Mybatis的注解来实现耐久化操纵。改用注解,规避了XML代码的编写,可是并没有办理框架对Mybatis的强依靠。以是这里在Domain中新增了Repository接口层,此层用于界说Domain的耐久化操纵,而Model层中对Repository举办实现,这里的实现就是Mybatis实现。这样做有两个甜头:
![]() 框架改造细节此刻已经知道了,怎样对框架举办改造,我们此刻就开始着手举办改革。着实首要的改革是对代码天生方法的改革,也就是编写FileTemplate、LiveTemplate和ScriptedExtensions。下面临这三个成果举办简朴的声名,先说ScriptedExtensions。 Scripted Extensions 先来表明一下,什么是Scripted Extensions。我们都知道,此刻的IDE都是插件式的,也就是说,我们可以通过开拓商提供的插件开拓包来开拓插件,扩揭示有的IDE成果。可是编写插件必要特定的开拓情形,假如是一个很简朴的成果,还要费劲去搭开拓情形,挺贫困的。以是IDEA提供了Scripted Extensions,可以领略为一个简化版的插件,就是可以通过脚原来扩展IDE成果。 IDEA提供了Database成果,可以毗连数据库举办相干操纵。当你毗连了数据库,在表上右击时,可以看到Scripted Extensions这个选项,内里有一个成果是可以基于表来天生POJO的groovy剧本。 可是成果较量low:
不外亏得,我们能基于这个脚原来自行修改,在适才的Scripted Extensions菜单里,有个Go to Scripts Directory选项,点击后,可以进入剧本目次。 ![]() 直接对这个groovy文件Ctrl+c,Ctrl-v,复制一份,重定名一下,基于这个剧本举办修改即可。详细怎么修改,凭证本身的需求来,内里首要就是按照表信息对String的拼接罢了。 FileTemplate FileTemplate是IDEA提供的天生文件的模板,你在点击菜单的File->New...往后,呈现的各类文件,都是基于FileTemplate来实现的。我们自界说的Controller、Service、Domain等类,都可以通过FileTemplate来简化建设。 详细行使方法为,按下Ctrl-Alt-S呼出配置菜单,点击Editor->File And Code Template,在内里新增Template即可。 ![]() (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |