加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

如何搭建合适的Web框架?

发布时间:2019-10-10 06:35:13 所属栏目:建站 来源:架构思维
导读:之前在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的组合要高于代码天生组件的:

  • 起首,当文件布局调解时,只必要修改FileTemplate,并将设置文件导出给项目构成员即可。
  • 同样的,当LiveTemplate调解时,也只必要修改对应的LiveTemplate,并将设置文件导出给项目构成员即可。
  • 其次,想天生哪个文件,只要针对这个文件天生即可
  • 第三,通过FileTemplate天生完备的文件后,可以通过LiveTemplate快速的举办模块化的编码
  • 最后,FileTemplate可以配置为项目级别,即每个项目可以有独立的FileTemplate

详细的操纵流程,在下面演示。

独立营业逻辑

针对Service和测试的题目,将原本的Controller、Service和Model三层,拆分为四层:

  • Controller认真前端数据的吸取和返回,以及同一非常处理赏罚
  • Service认真事宜以及Domain层逻辑的组装。这里就不会呈现事宜嵌套题目,也就不会导致抓不到祈望的非常的题目
  • Domain认真营业逻辑
  • Model认真数据耐久

这样Service的职责减轻了,同时不再有事宜嵌套的题目。

Model层优化

上面提到,框架中最终放弃了Mapper.xml,转而行使Mybatis的注解来实现耐久化操纵。改用注解,规避了XML代码的编写,可是并没有办理框架对Mybatis的强依靠。以是这里在Domain中新增了Repository接口层,此层用于界说Domain的耐久化操纵,而Model层中对Repository举办实现,这里的实现就是Mybatis实现。这样做有两个甜头:

  • 依靠倒置:原本是Domain依靠Model层,而此刻是Model层依靠Domain层,这样当我要把Mybatis替代掉时,Domain完全无感知。
  • 独立测试:由于此刻Domain不依靠于其余任何层,以是可以离开数据库和容器来举办测试。使得测试的服从不会跟着项目标开拓而越来越低
怎样搭建吻合的Web框架?

框架改造细节

此刻已经知道了,怎样对框架举办改造,我们此刻就开始着手举办改革。着实首要的改革是对代码天生方法的改革,也就是编写FileTemplate、LiveTemplate和ScriptedExtensions。下面临这三个成果举办简朴的声名,先说ScriptedExtensions。

Scripted Extensions

先来表明一下,什么是Scripted Extensions。我们都知道,此刻的IDE都是插件式的,也就是说,我们可以通过开拓商提供的插件开拓包来开拓插件,扩揭示有的IDE成果。可是编写插件必要特定的开拓情形,假如是一个很简朴的成果,还要费劲去搭开拓情形,挺贫困的。以是IDEA提供了Scripted Extensions,可以领略为一个简化版的插件,就是可以通过脚原来扩展IDE成果。

IDEA提供了Database成果,可以毗连数据库举办相干操纵。当你毗连了数据库,在表上右击时,可以看到Scripted Extensions这个选项,内里有一个成果是可以基于表来天生POJO的groovy剧本。

可是成果较量low:

  • 包名是写死的:com.sample
  • 没有天生table注释
  • 没有基于lombok来简化getter和setter

不外亏得,我们能基于这个脚原来自行修改,在适才的Scripted Extensions菜单里,有个Go to Scripts Directory选项,点击后,可以进入剧本目次。

怎样搭建吻合的Web框架?

直接对这个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即可。

怎样搭建吻合的Web框架?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读