[01] 使用IDEA搭建SpringCloud项目方法_简单入门

发布时间:2022-09-23 12:30

项目源码:https://gitee.com/zhangchouchou/spring-cloud-demo
后文链接:https://blog.csdn.net/weixin_42547014/article/details/120334570

一、前言

1. 基本认识

  1. 掌握 spring cloud 的前提是掌握好 spring boot。
  2. spring cloud 中的子模块一般使用 spring boot 实现
  3. spring cloud 的版本和 spring boot 有对应关系,可以在 spring 官网查看对应关系。
  4. spring cloud 项目中分为父工程和子模块,父工程主要做 jar 包的版本控制,子模块 jar 包的引用通过父模块来控制,并通过模块之间互相调用实现业务功能。

2. spring cloud 项目创建流程

  1. 创建父工程
    建议采用 maven 方式创建,这样可以控制 spring boot 的版本。比如应该使用的 spring boot 的版本是 2.3,而自动创建的时候最低版本只能选择到 2.4。

  2. 创建子模块
    根据业务需求,创建子模块。项目构建的过程中一定会经历工程重构的过程。创建项目的流程就是先实现功能,再进行工程优化和重构。


以下为创建 spring cloud 项目的一个简单例子


二、创建父工程

1.创建项目

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第1张图片

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第2张图片

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第3张图片

2.调整配置

创建完成后需要对IDEA进行一些设置

激活注解

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第4张图片

过滤无用文件

添加 *idea*iml

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第5张图片

字符编码

字符编码都调整为 UTF-8

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第6张图片

调整JDK

我用的是 JDK11

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第7张图片

3. 修改pom文件,定义为父工程

添加 pom

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第8张图片

4. 删除src文件夹

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第9张图片

5. 简单配置pom文件


<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.0modelVersion>

    <groupId>org.zjh.springclouddemogroupId>
    <artifactId>SpringCloudDemoartifactId>
    <version>1.0-SNAPSHOTversion>
    <modules>
        <module>cloud-provider-payment8001module>
    modules>

    <packaging>pompackaging>

    
    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <maven.compiler.source>11maven.compiler.source>
        <maven.compiler.target>11maven.compiler.target>
        <junit.version>4.13.1junit.version>
        <log4j.version>1.2.17log4j.version>
        <lombok.version>1.18.12lombok.version>
        <mysql.version>8.0.25mysql.version>
        <druid.version>1.2.6druid.version>
        <mybatis.spring.boot.version>2.1.4mybatis.spring.boot.version>
    properties>
    
    <dependencyManagement>
        <dependencies>
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-dependenciesartifactId>
                <version>2.3.12.RELEASEversion>
                <type>pomtype>
                <scope>importscope>
            dependency>
            
            <dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>Hoxton.SR12version>
                <type>pomtype>
                <scope>importscope>
            dependency>
            
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-alibaba-dependenciesartifactId>
                <version>2.1.0.RELEASEversion>
                <type>pomtype>
                <scope>importscope>
            dependency>
            
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>${mysql.version}version>
            dependency>
            
            <dependency>
                <groupId>com.alibabagroupId>
                <artifactId>druidartifactId>
                <version>${druid.version}version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sungroupId>
                        <artifactId>toolsartifactId>
                    exclusion>
                    <exclusion>
                        <groupId>com.sungroupId>
                        <artifactId>jconsoleartifactId>
                    exclusion>
                exclusions>
            dependency>
            
            <dependency>
                <groupId>org.mybatis.spring.bootgroupId>
                <artifactId>mybatis-spring-boot-starterartifactId>
                <version>${mybatis.spring.boot.version}version>
            dependency>
            
            <dependency>
                <groupId>junitgroupId>
                <artifactId>junitartifactId>
                <version>${junit.version}version>
            dependency>
            
            <dependency>
                <groupId>log4jgroupId>
                <artifactId>log4jartifactId>
                <version>${log4j.version}version>
            dependency>
            <dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
                <version>${lombok.version}version>
                <optional>trueoptional>
            dependency>
        dependencies>
    dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <version>2.3.12.RELEASEversion>
                <configuration>
                    <fork>truefork>
                    <additionalProperties>trueadditionalProperties>
                configuration>
            plugin>
        plugins>
    build>

project>

查看springCloud和springBoot版本对应关系

配置的时候,SpringBoot 和 SpringCloud 的版本需要对应上,查看版本对应的方式如下:

进入官网
[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第10张图片
GA代表稳定版
[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第11张图片
[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第12张图片

org.springframework.boot 报错,如下所示:
[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第13张图片
解决方式:添加上SpringBoot版本号即可
2.3.12.RELEASE

三、创建服务提供者

1. 创建子模块

注:创建子模块命名格式为模块功能+端口号

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第14张图片
创建方式选择maven,因为使用spring initializr创建在版本选择部分可能没有对应的spring boot版本

该模块为服务提供模块

[01] 使用IDEA搭建SpringCloud项目方法_简单入门_第15张图片

2. 在 pom 文件中引包


<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>SpringCloudDemoartifactId>
        <groupId>org.zjh.springclouddemogroupId>
        <version>1.0-SNAPSHOTversion>
    parent>
    <modelVersion>4.0.0modelVersion>

    <artifactId>cloud-provider-payment8001artifactId>

    <properties>
        <maven.compiler.source>11maven.compiler.source>
        <maven.compiler.target>11maven.compiler.target>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-actuatorartifactId>
        dependency>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
        dependency>
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druid-spring-boot-starterartifactId>
            <version>1.1.10version>
        dependency>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-devtoolsartifactId>
            <scope>runtimescope>
            <optional>trueoptional>
        dependency>
        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
    dependencies>
project>

lombok介绍

lombok(小辣椒),自动创建实体类中的 get/set 等方法,以及有参和无参构造函数,使代码更加简洁
常用注解:

  • @Data ——> 自动构建get、set方法
  • @AllArgsConstructor ——> 全属性构造函数
  • @NoArgsConstructor ——> 无参构造函数

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号