• Java Spring Cloud 实战之路


    0. 前言

    该项目使用Maven进行管理和构建,所以需要预先配置好Maven。嗯,在这个系列里就不做过多的介绍了。

    1. 创建项目

    先创建一个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>club.attachie</groupId>
        <artifactId>nature</artifactId>
        <packaging>pom</packaging>
        <version>${revision}</version>
        <properties>
            <revision>1.0-SNAPSHOT</revision>
        </properties>
    </project>
    

    POM 全称 project object model,也就是项目对象模型,它是maven项目的标注文件,采用XML格式,名称就是pom.xml。这个文件用于管理源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目地址和依赖关系。

    pom文件对于maven项目重要到,一个maven项目可以没有其他的任何文件和内容,但绝对不能没有pom.xml文件。

    1.1 项目信息

    pom文件中包含了项目的基本信息:

    • groupId 组织名称
    • artifactId 项目名称
    • version 版本号

    1.2 使用占位符

    在pom中我们会使用很多项目的版本号,有时候还会使用一些其他的常量。如果常量分布的比较零散,这样就不利于我们的维护和管理。这时候就要引入占位符或者叫属性。我们将需要的常量声明在properties节点内:

    <properties>
        <revision>1.0-SNAPSHOT</revision>
    </properties>
    

    这种形式类似于 声明了一个变量

    revision=1.0-SNAPSHOT
    

    在需要这个变量的时候,通过${revision}使用即可。

    2. 项目结构分层

    在一个工业级的项目里,我们需要对项目进行一个合理的分层。这样有利于开发和后期维护。

    那么,先在根目录下添加这三个目录:

    • common 用来存放一些公共包
    • activities 业务模块所在的父包
    • manager 用来存放一些Spring Cloud的一些管理工具,例如Spring boot admin、Spring Cloud Gateway等

    分别在三个目录下添加 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>club.attachie</groupId>
        <artifactId>各自的项目名称,建议是目录名</artifactId>
        <packaging>pom</packaging>
        <version>${revision}</version>
        <parent>
            <groupId>club.attachie</groupId>
            <artifactId>nature</artifactId>
            <version>${revision}</version>
        </parent>
    
    </project>
    

    并修改各自的artifactId。

    然后注册到根目录的pom.xml,标记这三个项目为子项目。

    <modules>
        <module>common</module>
        <module>activities</module>
        <module>manager</module>
    </modules>
    

    然后运行:

    mvn clean install
    

    检查一下配置是否有误。

    3. 引入公共依赖

    Spring boot和Spring Cloud建立了对应的依赖包,可以让我们在开发过程中不用过多的担心一些常见项目与Spring boot和Spring Cloud的版本冲突问题。

    先在根目录下的pom.xml文件中声明引入的 Spring boot版本号和Spring Cloud版本号:

    <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
    <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
    

    创建依赖管理节点,并添加 Spring boot 和Spring Cloud依赖包:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    在子包中需要用到的三方包,理应都由根目录下的pom.xml进行管理,而管理的包都会放在dependencyManagement >> dependencies 节点下。

    在项目中使用依赖,在pom.xml文件的project节点下添加如下节点,如果已有可以忽略,注意不是dependencyManagement下的

    <dependencies>
        
    </dependencies>
    

    试着添加lombok包(这个包是一个Java中很著名的包,可以省略Java中的get/set等方法的创建)。

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    

    之所以没有声明版本号,是因为这个包已经由 spring-boot-dependencies 进行管理了。所以我们直接在这里引入即可。

    4. 总结

    现在,我们搭建起了一个项目架子,里面空荡荡的什么都没有,但这样就形成了一个骨架,后期将为这个骨架丰富血肉,让它的功能更加强大。

    更多内容烦请关注我的博客《高先生小屋》

    file

  • 相关阅读:
    SpringMVC总结
    javaEE学习路线与目标
    mybatis逆向工程的注意事项,以及数据库表
    数据库权限表个表的关系
    Spring Security中html页面设置hasRole无效的问题
    StartUML的基础的使用,用例图,序列图
    oracle中文乱码问题解决
    Eclipse中的创建maven项目,无法添加src/main/java等source folder
    StarUML 系列,静态图与动态图,用例图,类图
    爬虫入门程序开门见山
  • 原文地址:https://www.cnblogs.com/c7jie/p/13022478.html
Copyright © 2020-2023  润新知