理论完备之后,开始正式的编码环节。
一:微服务cloud整体聚合父工程Project
1.新建父工程步骤(搭建一个workSpace)------p5
(1)New Project
(2)聚合总父工程名字
(3)Maven选版本(这里是3.5.2) maven的下载地址:http://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/
(4)工程名字(cloud2020)
(5)字符编码
(6)注解生效激活(default那里也要选择Enable)
(7)Java编译版本选8
(8)File Type过滤
过滤掉展示不用的多余文件,这步不是必须的。
2.父工程POM文件的编写-----p6
在pom文件里添加:工程需要的jar包,以及依赖,数据库等
3.maven工程的落地细节-----p7
(1)maven中的dependcyManagement 和depenceces二者的区别
(2)maven单元测试
备注:dependencyManagement和dependencies的区别
(1.)最顶层的父pom具备这个元素dependencyManagement,里面写明的版本号,可以直接被子pom继承使用,子pom就不用再指明版本号。
(2.)dependcyManagement里面只是申明了依赖,但是并没有真实引入。子pom中的a标签才是真实引入的步骤。
(3.)maven中需要跳过单元测试。(虽然我不知道为什么?)
二:正式开发环节----p8
构建支付模块Payment
1.微服务模块开发步骤:
(1)建module
选中项目根目录,New- Module
(2)改pom
查看主pom下面多了一个modules,
编写子模块的pom文件,添加必要的依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
(3)写yml
在子模块下新建yml文件application.yml
(4)主启动
在子模块下构建主启动类,模块的启动入口
(5)业务类------p9
2.针对于1中的业务类,具体的又可以划分为以下几个模块。
在实际过程中,后端程序员应该做的工作应该是 controller-service-dao-mysql
(1)建表sql
创建数据库
(2)entities:a. 创建实体类 b. 引入三个注解 c. 序列化 (引入三个注解的作用,我不是很了解。。)
第二个注解表示全参构造方法,第三个参数表示空参构造方法。
还需要定义一个跟前端交互的结果返回类(通用:标准格式)T指的是具体的业务类,例如payment,具体列出的构造方法,表示data为空时的情况。
(3)dao
写完dao层以后 接下来需要写mapper文件。
红色框中的东西是一个结果映射,因为column是数据库中的字段(会出现下划线),property是java实体类中定义的属性(大小写交替)
(4)service(代码可以跟dao层中的内容一致)
肌肉记忆:dao类上面 带注解 mapper !!!!!
serviceImpl类上面 带注解 service !!!!
service 里面调用dao
(5)controller
controller层涉及到和前端交互,因此需要对结果进行封装。
测试:
get方法很容易从浏览器测试得到结果,但是post方法,不太支持,用postMan方法用的比较多。