前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IDEA 2021 Spring Cloud 项目搭建 步骤演示 图文解说 (基础版)

IDEA 2021 Spring Cloud 项目搭建 步骤演示 图文解说 (基础版)

作者头像
猫头虎
发布2024-04-07 16:53:35
1970
发布2024-04-07 16:53:35
举报
1.打开IDEA

2.新建项目

我们首先先构建父工程,这里使用的是maven项目,用spring快速项目进行构建。 注意:这里选择jdk11演示,自己也可以用其他版本如1.8

3.默认即可,直接finish

4.构建完成

注意: 如果报错,记得去配置maven仓库,最好在配置以下编码格式哦! 如果会新项目默认配置的朋友可以忽略这一步~

既然能看到这里,一定是有基础的,就不做过多解释,看序号就可以,只是要注意: 配置完成要点击apply和OK 不然无效哦!

5 .接下来配置父项目的pom.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- springboot的依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
     
    </parent>
    <groupId>com.libin</groupId>
    <artifactId>mcroservice</artifactId>
    <!-- 首先修改打包方式 -->
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>mcroservice</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <mysql.version>5.1.47</mysql.version>
        <druid.version>1.1.10</druid.version>
        <junit.version>4.1.2</junit.version>
        <lombok.version>1.16.10</lombok.version>
        <log4j.vsrsion>1.2.17</log4j.vsrsion>
    </properties>
    <!--  因为是总项目 所以用dependencyManagement来管理  因为其他的子项目就不会来管理版本了了 可以直接引用 -->
    <dependencyManagement>
        <dependencies>

            <!-- springcloud的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR8</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>


            <!--  数据库-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <!-- springboot启动器-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <!--单元测试 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
            <!-- lombok-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.8</version>
            </dependency>

            <!-- log4j-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.vsrsion}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

 

</project>

注意:这是父项目,用不到src目录的内容,直接删掉即可,不删掉会报错

我们此时父工程就搭建完成了,就是这么简单。

接下来,我们就可以进行继续搭建其他的微服务工程了。我们首先搭建一个专门放我们实体类的服务,来让其他服务来调用。

选中我们的父工程点击New,在点击Module,如下图:

填写我们的Module的项目名称。注意下面这是Module name处用将我们项目名的-省略,因为实际项目中有更多的工程,我们为了方便看的更清楚,需要加-来进行分割!

注意:这个微服务模块不需要入口类,直接删掉入口类即可,以及测试的默认文件

此时我们的第一个微服务工程就建立完成了,接下来就是配置啦。我们首先配置POM.xml文件。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--  在这里配置继承的父项目的poM -->
    <parent>
        <groupId>com.libin</groupId>
        <artifactId>mcroservice</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      
    </parent>
    <artifactId>cloud_api_commons</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>cloud_api_commons</name>
    <description>Demo project for Spring Boot</description>

    <dependencies>

        <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>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.1.0</version>
        </dependency>


    </dependencies>


  

</project>

注意:这里我们引入了Hutool这个jar包,它是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类更多相信信息可参考: 一个超神级框架​——Hutool工具类​应有尽有!

这是我们就可以在该服务中写的pojo类,我们这里以支付为例,所以我们先在数据中建议一张支付的表。sql语句如下

代码语言:javascript
复制
CREATE TABLE `payment` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `serial` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
代码语言:javascript
复制
我们为该表添加数据,sql语句如下:

```powershell
insert  into `payment`(`id`,`serial`) values (1,'百度'),(2,'alibaba'),(3,'京东'),(4,'小米');

IDEA 逆向工程生成实体类策略可参考: IDEA 2021 配置Data Sources 建表和添加数据完成了,我们就新建对应的实体类。下图为项目结构图:

注意:payment表对应的实体类。这里使用了lombok

Payment实体类源码:

代码语言:javascript
复制
package com.libin.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * (Payment)实体类
 *网络通信 一定要实现序列化
 * 使用lombok  没有配置的朋友要去百度查一下  jar我们导入了  需要在idea装一个插件就可以了
 * @author libin
 * @since 2021-06-20 13:51:22
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Payment implements Serializable {
	private static final long serialVersionUID = 613241275635502144L;
	/**
	 * ID
	 */
	private Long id;
	/**
	 *      微服务 一个服务对应一个数据库,同一个信息可能存在不同的数据库
	 */
	private String serial;


}

为了数据传输的方便,也为了前后端分离项目,我们将返回的数据进行封装,封装成一个实体类。

代码语言:javascript
复制
package com.libin.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * @author libin
 * @date 2021年06月20日 13:56
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class CommonResult<T> {
	/**
	 *
	 * @author libin
	 * @date 2021/6/20 13:57
	 *
	 *返回状态码
	 */
	private Integer code;
	/**
	 *
	 * @author libin
	 * @date 2021/6/20 13:57
	 * @返回是否调用成功
	 *
	 */
	private String message;
	/**
	 *
	 * @author libin
	 * @date 2021/6/20 13:57
	 *  返回的数据
	 */
	private T data;

	public CommonResult(Integer code, String message) {
		this(code, message, null);
	}
}

我们实体类的服务主要存放实体类,也不写业务逻辑,我们也可以将src文件夹删除掉。此时我们就将总工程和提供实体类的微服务工程搭建成功了。因为实体类的服务工程需要其他的各个服务工程调用,所以要将实体类的服务进行打包放到公用的本地库中。

我们首先将该工程clean,确保当前工程的maven的配置是否成功。

出现如下界面说明当前工程的maven配置环境没有问题

那接下来我们就开始install打包放到本地库中。如下为成功界面:

代码语言:javascript
复制
D:\Java\jdk_11_windows_x64\bin\java.exe -Dmaven.multiModuleProjectDirectory=D:\project\SpringCloud\mcroservice -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -DarchetypeCatalog=local -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.home=D:\Java\apache_maven_3_8_1 -Dclassworlds.conf=D:\Java\apache_maven_3_8_1\bin\m2.conf "-Dmaven.ext.class.path=D:\Java\IntelliJ_IDEA\IntelliJ IDEA 2021.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\Java\IntelliJ_IDEA\IntelliJ IDEA 2021.1.2\lib\idea_rt.jar=3762:D:\Java\IntelliJ_IDEA\IntelliJ IDEA 2021.1.2\bin" -classpath D:\Java\apache_maven_3_8_1\boot\plexus-classworlds-2.6.0.jar;D:\Java\apache_maven_3_8_1\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2021.1.2 -s D:\Java\apache_maven_3_8_1\conf\settings.xml -Dmaven.repo.local=D:\Java\MavenRepository install
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------< com.libin:cloud_api_commons >---------------------
[INFO] Building cloud_api_commons 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ cloud_api_commons ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ cloud_api_commons ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to D:\project\SpringCloud\mcroservice\cloud_api_commons\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ cloud_api_commons ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\project\SpringCloud\mcroservice\cloud_api_commons\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ cloud_api_commons ---
[INFO] Changes detected - recompiling the module!
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ cloud_api_commons ---
[INFO] 
[INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ cloud_api_commons ---
[INFO] Building jar: D:\project\SpringCloud\mcroservice\cloud_api_commons\target\cloud_api_commons-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ cloud_api_commons ---
[INFO] Installing D:\project\SpringCloud\mcroservice\cloud_api_commons\target\cloud_api_commons-0.0.1-SNAPSHOT.jar to D:\Java\MavenRepository\com\libin\cloud_api_commons\0.0.1-SNAPSHOT\cloud_api_commons-0.0.1-SNAPSHOT.jar
[INFO] Installing D:\project\SpringCloud\mcroservice\cloud_api_commons\pom.xml to D:\Java\MavenRepository\com\libin\cloud_api_commons\0.0.1-SNAPSHOT\cloud_api_commons-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  6.171 s
[INFO] Finished at: 2021-06-20T14:17:06+08:00
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

这一篇就写到这里咯~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.打开IDEA
  • 2.新建项目
  • 3.默认即可,直接finish
  • 4.构建完成
  • 5 .接下来配置父项目的pom.xml
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档