发表于: 2017-09-29 16:32:31
1 740
今天完成的事情:
一、把任务一完成的的代码进行打包发布到服务器并成功运行
1.项目框架:Spring+mybatis整合
实现功能:通过控制台来交互实现对数据库的增删改查简单的功能示例如下:
2.代码流程
(1)首先是数据库的设计,这部分比较简单,不在赘述。
(2)我这里把Javabean定义在model层,定义基本的成员变量与数据库字段对应,设置set和get方法,
重写tostring方法。
(3)dao层定义对数据库的增删改查方法,这里只写接口不写实现类。
(4)定义service层或者说是action层,这一层主要是与用户的交互,接受用户输入的参数后者指令,然后调用dao层的方法,接着dao层与数据库交互返回结果给server层,接着service层在展示给用户。这样做的好处是隔离的各个层之间的关联,使得各层的修改对整个项目的改动影响降低。
(5)写测试方法来逐一实现dao层定义的方法是否功能正常运行。
(6)写main方法,这里展示就是在简单在控制台里实现,从逻辑上来说应该是要有一个view层的。这也是最基本的MVC的基本思想。
3.打包部署远程服务器
(1)直接打包成可执行jar包,maven的配置文件pom.xml需要改动添加如下标签,标红处指明main方法的入口,从src/main/java/之后可是写,我这里是com.lhq.task.main.UserMain
<!-- 打包jar并添加依赖,可直接运行 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>xxxx.main</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
(2)使用maven命令来打包跳过测试:mvn clean package -DskipTests
生成的jar在项目文件下的target目录下,生成了两个jar包,选择不带original前缀的jar包,这个jar可以直接使用命令执行:java -jar *.jar
之后把task1-1.0-SNAPSHOT.jar传入到远程服务器上运行
(3)远程服务器直接运行
用xshell工具连接远程服务器,找到上述的文件所在目录,我这里把包名字改了。
功能1:
功能2
功能3
功能4
功能5
以上就是基本的功能,项目所有文件已上传Git:https://github.com/TechMessage/task_lihq
明天的计划:
1.开始着手任务2
遇到的问题:
1.在用maven命令打包可执行jar包的过程中会遇到报错
maven打包的jar包用压缩软件打开,发现里面是缺少这三个重要的文件的
只需要把对应项目下的文件拖到打包的jar里重新保存下。
2.接着还是会报错,找不到对应的mapper.xml文件,也是同样的做法,把项目里的*mapper.xml文件复制一份放到jar包里,路径和项目里的保持一致
3.接着就可以运行了,上面的两个问题是我遇到的,我在百度上没有搜到答案,然后自己根据错误信息尝试来做的,结果还是可行的。
收获:
整个任务一的流程下来算是走通了,但是几种还要很多的知识点需要细化,然后进行拓展和加强联系。就比如spring框架究竟是如何运转的,看概念的话确实很抽象,IOC控制反转什么的都是很难搞清楚为什么这么做,这么做究竟有什么意义,通过上面的任务一整个流程走下来,可以发现在对象的创建过程中,确实省了很多的步骤,基本基本上把所有的中间过程配置到xml文件里,我们只要最终的接口就能够对数据库实现各种操作。mybatis的作用或者他的初衷我的理解是就不是不用写接口实现类了,我的项目里也只是写了UserDao这个接口,定义了方法,具体的实现类并没有写。
评论