大家好,我是IT修真院郑州分院第8期学员,一枚正直善良的java程序员。今天给大家分享一下,修真院官网 java任务中可能会使用到的知识点:
代码生成
width="640" height="498" src="https://v.qq.com/txp/iframe/player.html?vid=v0781igi8ct" allowfullscreen="">
【修真院java小课堂】代码生成20180908
1.背景介绍
- 从任务一到任务九,我们都是手写代码、配置文件,而这些代码或者配置文件很多都是重复的,其实在这个过程中大家或多或少都会去思考,我们做的重复性工作是不是太多了?
- 是的,如果我们在公司开发项目的时候,所有的实体类、dao层、service层等都是手动写的,那么项目的开发效率可想而知有多么低
- 如何解决这个问题呢?既然这是个“需求”,那就搞定它。所以就有代码生成这么一个项目,当然这个项目已经是现成的了,直接去“学员svn”拉取就好了
2.知识剖析
2.1 生成代码的框架简单介绍
- web、service分离,tuscany
- 注册中心,scallop
2.2 生成代码之后的文件对应关系
- 根据web、service分离,以及core包划分
- core:model、service接口、SCAClient
- service:Server、service实现类、配置文件(spring、tuscany server、dao层、数据库配置文件)
- web:controller、util、配置文件(spring、springmvc、tuscany client、scallop注册中心、缓存……)、jsp页面、web.xml
2.3 生成代码之后,搭建新项目需要注意的地方
- maven私服配置:主要是把公司私服配置进来(没难度)
- hosts文件修改:对于注册中心提供的域名进行解析
3.常见问题
3.1 项目从生成到跑起来的坑点
- 注意表格,表格命名、服务端口
- core包,可以使用maven isntall直接打包到本地(服务器)
- 数据库表格,注意数据是否为空的限制
4.编码实战
- 从代码生成到项目运行成功
- 具体见视频
5.扩展思考
5.1 能否自己写代码生成项目
- –读取文件(固定的格式)
- –将文件按照协议(约定的格式)解析
- –在指定的位置生成
–落地成为代码
–整体的逻辑并不复杂,但是从实现上来说有几处注意的地方
- –文件选取什么样的格式,比如json、xls、csv等(目前我见过的有csv和xls)
- –如何做好协议,协议本身应该遵从怎样的规范
6.参考文献
https://v.qq.com/x/page/b0567v259kh.html
https://v.qq.com/x/page/e05199sjgl9.html
小课堂相关资料
7.更多讨论
Q:公司框架需要学习到什么程度?
A:能运行,能知道如何修改sql语句,基本就够用了
Q:不在scallop.resource.center中写入service对应关系可以正常使用不?
A:理论上是可以的,就像任务9的时候,不适用注册中心,tuscany照样可以完成web和service分离。
Q:代码生成是否是常见?
A:挺常见的,mybatis逆向工程是一个典型,公司代码生成是一个,github上应该也有一些开源的项目,可以去看看