SpringCloud-01 Rest学习环境搭建笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud-01 Rest学习环境搭建笔记相关的知识,希望对你有一定的参考价值。

SpringCloud-01

@​​TOC​

写在前面

由于刚开始创建第一个项目的时候,出现了版本冲突问题,所以最后没有启动下来,但是我大部分的图片都是用的第一次的,所以大家可以主观的把图片中父项目SpringCloud看成springcloud-demo2,因为持续的时间不算短,涉及的东西又比较多,如果有什么纰漏,希望大家可以在评论区指出来,如果您觉得本篇博客,对您有所帮助,也欢迎您点赞收藏!

一、新建一个项目

使用idea新建一个Maven项目

SpringCloud-01

填写两处的信息,完成创建

SpringCloud-01

src在父项目中没有发挥作用,可以删掉

SpringCloud-01

二、服务提供者

1、编写父项目

pom.xml文件配置,主要有spring-cloud的配置、springboot的启动依赖,mysql的依赖、数据源、Lombok、日志、junit、log4j的依赖。其中对于易改变版本的依赖,可以进行统一的版本管理,放到properties里面,这样可以清晰方便的修改版本号。

注意这是自己项目的名字

SpringCloud-01

pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.you</groupId>
<artifactId>springcloud-demo2</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>springcloud-api</module>
<module>springcloud-provider-dept-8001</module>
</modules>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<lombok.version>1.16.18</lombok.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--springCloud的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--SpringBoot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--SpringBoot 启动器-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!--日志测试~-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>$junit.version</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>$log4j.version</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>$lombok.version</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>

2、编写子项目

新建一个module

右键-新建一个module

SpringCloud-01

填写module名,点击Finish,完成创建

SpringCloud-01

创建完成,可以看到父工程是springcloud-demo2。

SpringCloud-01

但是这时候我们看到maven里并无依赖,原因是因为** 是一个项目管理器,只有子项目使用的时候,才会被导入进来**

SpringCloud-01

当我们在子项目中,使用依赖时,这时候可以看到子项目的maven里有了依赖,这也印证了父工程只是一个依赖管理,并不引入依赖。

SpringCloud-01

3、连接Mysql

连接mysql时,出现“Server returns invalid timezone. Need to set serverTimezone property.”错误

SpringCloud-01

将UTC修改为GMT,点击Apply。不要点ok

SpringCloud-01

重新检测连接,如下证明数据库连接成功,但是这时候还没有选择自己创建的数据库

SpringCloud-01

点击Schemas,选择自己要使用的数据库(下面写成表了,其实是数据库),这时候可以点击ok了。

SpringCloud-01

这时候可以在Database里面看到自己选择的数据库,如果该数据库里面存在表,那么你也可以看到自己创建的表。

SpringCloud-01

使用idea创建数据库表

1、找到数据库,右键-new-table

SpringCloud-01

2、填写表名、新建字段(字段名、属性)

SpringCloud-01

3、填写完成之后,点击Execute,就可以看到自己新创建的表了

SpringCloud-01

4、插入数据,其中DataBase()指的是数据库的来源

SpringCloud-01

5、添加数据成功

SpringCloud-01

4、编写实体类

实体类与数据库中的表对应,链表关系映射

SpringCloud-01

(上面写的是dept,为了好看一些,改成了大写的Dept) Dept.java

package com.you.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Dept implements Serializable
private Long deptno;
private String deptname;
private String db_source;
/*Serializable 支持链式写法
* Dept.setDeptno(1).setDeptName("开发部");
* */

5、新建一个子项目

再新建一个module

SpringCloud-01

过程如2编写子项目一样,创建完后如下

SpringCloud-01

配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud-demo2</artifactId>
<groupId>com.you</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>springcloud-provider-dept-8001</artifactId>
<dependencies>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--Spring web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.3</version>
</dependency>
<!--spring boot 启动-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.isis.viewer</groupId>
<artifactId>junit</artifactId>
<version>0.2.0-incubating</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>com.you</groupId>
<artifactId>springcloud-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>

</dependencies>

</project>

创建yaml文件

在springcloud-provider-dept-8001 resources

SpringCloud-01

右键-new-file 输入application.yaml或者application.yml

SpringCloud-01

配置application.yaml

#端口号
server:
port: 8001

#配置数据库
spring:
datasource:
url: jdbc:mysql:///dp80?serverTimezone=UTC
username: root
password: 你的数据库密码
driver-class-name: com.mysql.jdbc.Driver

SpringCloud-01

编写Mapper

在you文件下,新建一个mapper文件夹,里面创建一个DeptMapper接口文件

SpringCloud-01

DeptMapper.interface

package com.you.mapper;

import com.you.pojo.Dept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;
@Mapper
@Repository
public interface DeptMapper
@Select("select * from Dept where deptno = #id")
public Dept finaDeptOfId(Long id);

编写Controller

在you文件夹下,新建一个Controller文件夹,里面创建DeptController.java文件

SpringCloud-01

DeptController.java

package com.you.Controller;

import com.you.mapper.DeptMapper;
import com.you.pojo.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@ResponseBody
@Component
public class DeptController
@Autowired
DeptMapper deptMapper;
@GetMapping("/dept/aDept/id")
public Dept getDeptOfId(@PathVariable("id") Long id)

return deptMapper.finaDeptOfId(id);

创建SpringBoot启动类

在you文件夹下,创建DeptApplication.java文件,注意是you文件夹下,也就是DeptApplication.java和Mapper文件夹和Controller文件夹平级

SpringCloud-01

6、启动

在启动类中点击启动按钮

SpringCloud-01

打开浏览器,输入​​http://localhost:8001/dept/aDept/1​​ 回车

SpringCloud-01

获得数据成功

SpringCloud-01

三、服务消费者

新建一个module

SpringCloud-01

取名springcloud-comsumer-dept-80

SpringCloud-01

配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud-demo2</artifactId>
<groupId>com.you</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId<

以上是关于SpringCloud-01 Rest学习环境搭建笔记的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud学习笔记2:Rest学习环境搭建之认识Rest风格

SpringCloud - Rest学习环境搭建

19-Django REST framework-DRF工程搭建

springcloud01- SpringCloud快速搭建

SpringCloud01_技术选型搭建父工程支付模块订单模块热部署Devtools(开发阶段)工程重构

restfull环境搭建-helloword