Springboot创建子父工程过程图解

这篇文章主要介绍了Springboot创建子父工程过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.创建子父工程

2.添加pom配置文件

2.1 父工程pom.xml

<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.demo</groupId>
 <artifactId>springboot</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>pom</packaging>
 <modules>
   <module>springboot-server</module>
   <module>springboot-common</module>
   <module>springboot-domain</module>
   <module>springboot-sdk</module>
 </modules>

 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <build.jdk.version>1.8</build.jdk.version>
    <spring.boot.version>1.5.9.RELEASE</spring.boot.version>
    <spring.version>4.3.13.RELEASE</spring.version>
    <slf4j.version>1.7.25</slf4j.version>
    <fastjson.version>1.2.8</fastjson.version>
    <commons.lang.version>3.1</commons.lang.version>
    <commons.io.version>2.5</commons.io.version>
    <commons.beanutils.version>1.9.3</commons.beanutils.version>
    <commons.codec.version>1.11</commons.codec.version>
    <guava.version>19.0</guava.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <version>${spring.boot.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>${spring.boot.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring.boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
      </dependency>

      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>${fastjson.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons.lang.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons.io.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>${commons.beanutils.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons.codec.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <version>${spring.boot.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
  </dependencies>

  <distributionManagement>
    <repository>
      <id>nexus-releases</id>
      <name>Nexus Release Repository</name>
      <url>http://ip:9090/repository/releases/</url>
    </repository>
    <snapshotRepository>
      <id>nexus-snapshots</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://ip:9090/repository/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>${build.jdk.version}</source>
          <target>${build.jdk.version}</target>
        </configuration>
      </plugin>

      <!-- 使用方式命令: versions:set -DoldVersion=* -DnewVersion=1.0.1-SNAPSHOT -DprocessAllModules=true
        -DallowSnapshots=true -->
      <plugin>
        <groupId>org.sonarsource.scanner.maven</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <version>3.2</version>
      </plugin>
    </plugins>
  </build>

</project>

2.2 子工程springboot-server pom.xml:

<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>
 <parent>
  <groupId>com.demo</groupId>
  <artifactId>springboot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 </parent>
 <artifactId>springboot-server</artifactId>

 <name>springboot-server</name>
 <properties>
    <application.main.class>com.demo.Application</application.main.class>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
    </dependency>

    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
    </dependency>

    <dependency>
      <groupId>net.sf.ehcache</groupId>
      <artifactId>ehcache</artifactId>
      <version>2.10.5</version>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>*.properties</include>
          <include>*.yml</include>
          <include>*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
        <excludes>
          <exclude>scripts/*</exclude>
          <exclude>*.properties</exclude>
          <exclude>*.yml</exclude>
          <exclude>*.xml</exclude>
        </excludes>
      </resource>

      <!-- 收集运行脚本 -->
      <resource>
        <directory>src/main/resources/scripts</directory>
        <targetPath>${project.build.directory}/bin</targetPath>
        <filtering>true</filtering>
        <includes>
          <include>*.sh</include>
          <include>*.bat</include>
        </includes>
      </resource>
      <!-- 收集配置文件 -->
      <resource>
        <directory>src/main/resources</directory>
        <targetPath>${project.build.directory}/conf</targetPath>
        <filtering>true</filtering>
        <includes>
          <include>*.properties</include>
          <include>*.yml</include>
          <include>*.xml</include>
        </includes>
      </resource>

      <!-- 收集手动导入的jar包 -->
      <resource>
        <directory>lib</directory>
        <targetPath>${project.build.directory}/lib</targetPath>
      </resource>
    </resources>
    <plugins>
      <!-- 1.用于编译的plugin -->
      <!-- <plugin> -->
      <!-- <groupId>org.apache.maven.plugins</groupId> -->
      <!-- <artifactId>maven-compiler-plugin</artifactId> -->
      <!-- <version>3.1</version> -->
      <!-- <configuration> -->
      <!-- <fork>true</fork> -->
      <!-- <source>1.8</source> -->
      <!-- <target>1.8</target> -->
      <!-- <encoding>UTF-8</encoding> -->
      <!-- </configuration> -->
      <!-- </plugin> -->

      <!-- 2.用于生成jar包的plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <outputDirectory>${project.build.directory}/lib</outputDirectory>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <classpathPrefix>lib/</classpathPrefix>
            </manifest>
          </archive>
          <excludes>
            <exclude>*.xml</exclude>
            <exclude>*.yml</exclude>
            <exclude>*.properties</exclude>
          </excludes>
        </configuration>
      </plugin>

      <!-- 3.用于拷贝maven依赖(lib)的plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- 4.用于拷贝resource文件夹 的plugin -->

      <!-- 5.配置生成源代码jar的plugin[这里的源代码是指java文件,不是class文件] -->
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <attach>true</attach>
          <!-- 配置源代码jar文件的存放路径 -->
          <outputDirectory>${project.build.directory}</outputDirectory>
        </configuration>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- 打包zip -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>dfrp-portal</id>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>${application.main.class}</mainClass>
                </manifest>
              </archive>
              <descriptors>
                <descriptor>src/main/resources/scripts/assembly.xml</descriptor>
              </descriptors>
              <!-- 将依赖jar包都包含在目标jar中 -->
              <!-- <descriptorRefs> -->
              <!-- <descriptorRef>jar-with-dependencies</descriptorRef> -->
              <!-- </descriptorRefs> -->
              <finalName>${project.name}-${version}</finalName>
            </configuration>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

3.App启动类

/**
 * Copyright (c) 2020, All Rights Reserved.
 *
*/

package com.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
  private static final Logger LOG = LoggerFactory.getLogger(Application.class);

  public static void main(String[] args) {
    SpringApplication app = new SpringApplication(Application.class);
    app.setBannerMode(Banner.Mode.OFF);
    app.setWebEnvironment(true);
    app.run(args);
    LOG.info("**************** Startup Success ****************");
  }
}

4.application.yml配置文件

version: ${project.version}

server:
 port: 7070
 session-timeout: 0
 context-path: /

5.测试controller类

package com.demo.server.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {

  @RequestMapping("/helloworld")
  public String hello(String name) {
    return "name"+name;
  }

}

springboot子父项目启动成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot集成gRPC微服务工程搭建实践的方法

    前言 本文将使用Maven.gRPC.Protocol buffers.Docker.Envoy等工具构建一个简单微服务工程,笔者所使用的示例工程是以前写的一个Java后端工程,因为最近都在 学习微服务相关的知识,所以利用起来慢慢的把这个工程做成微服务化应用.在实践过程踩过很多坑,主要是经验不足对微服务还是停留在萌新阶段,通过本文 记录创建微服务工程碰到一些问题,此次实践主要是解决以下问题: 如何解决.统一服务工程依赖管理 SpringBoot集成gRPC 管理Protocol buffers文

  • Maven工程搭建spring boot+spring mvc+JPA的示例

    本文介绍了Maven工程搭建spring boot+spring mvc+JPA的示例,分享给大家,具体如下: 添加Spring boot支持,引入相关包: 1.maven工程,少不了pom.xml,spring boot的引入可参考官网: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

  • 在spring-boot工程中添加spring mvc拦截器

    1. 认识拦截器 Spring MVC的拦截器(Interceptor)不是Filter,同样可以实现请求的预处理.后处理.使用拦截器仅需要两个步骤: 实现拦截器 注册拦截器 1.1 实现拦截器 实现拦截器可以自定义实现HandlerInterceptor接口,也可以通过继承HandlerInterceptorAdapter类,后者是前者的实现类.下面是拦截器的一个实现的例子,目的是判断用户是否登录.如果preHandle方法return true,则继续后续处理. public class L

  • eclipse springboot工程打war包方法及再Tomcat中运行的方法

    一, eclipse springboot打war包 1. 配置pom.xml文件 <packaging>war</packaging> <!-- 配置servlet,打war包时放开 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided

  • 使用IntelliJ IDEA 2017.2.5 x64中的Spring Initializr插件快速创建Spring Boot/Cloud工程(图解)

    在我的上一篇文章中,选用了http://start.spring.io/创建工程. 接下来使用IntelliJ IDEA 2017.2.5 x64创建Spring Boot/Cloud工程 新安装的IntelliJ IDEA 2017.2.5 x64中没有Spring Initializr这个插件; 接下来安装Spring Initializr插件; 在settings -> Plugins 里面搜索spring boot,勾选上,然后再重启下idea,就可以了.如果Plugins里面没有spr

  • springboot工程jar包部署到云服务器的方法

    首先,springboot在这里不多做介绍了,关于怎么打成jar包,我相信凡是用过的同学都知道吧! 然后就是将jar包上传到云服务器了,这个有好些工具的,博主在这里也不多做说明了! 咱们还是直奔主题吧.... 运行命令:java -jar xxx.jar,然后springboot工程的内置tomcat就开启了,项目已经启动,接下来你就可以访问了. 感觉一切ok,其实你已经掉到坑里了... 怎么回事呢? 当你关闭当前的xshell 命令界面时,再次访问就失效了,why? why? why? 这是因

  • 详解Spring Boot工程集成全局唯一ID生成器 UidGenerator的操作步骤

    Spring Boot中全局唯一流水号ID生成器集成实验 概述 流水号生成器(全局唯一 ID生成器)是服务化系统的基础设施,其在保障系统的正确运行和高可用方面发挥着重要作用.而关于流水号生成算法首屈一指的当属 Snowflake 雪花算法,然而 Snowflake本身很难在现实项目中直接使用,因此实际应用时需要一种可落地的方案. UidGenerator 由百度开发,是Java实现的, 基于 Snowflake算法的唯一ID生成器.UidGenerator以组件形式工作在应用项目中, 支持自定义

  • 详解SpringBoot 使用Spring Initializr 快速构建工程(官方推荐)

    序言: 在此之前,我们主要通过Maven Archetype 来快速生成Maven项目,项目原型相对简陋,对各种IDE的支持也不太友好.然而通过Spring官方提供的Spring Initializr 来构建Maven项目,它不仅完美支持IDEA和Eclipse,而且能自动生成启动类和单元测试代码,给开发人员带来极大的便利!! 注:本文含Eclipse&IDEA两部分教程. 一.Spring Initializr 使用教程 ( Eclipse )具体步骤: 步骤1 : 使用浏览器打开: http

  • Linux启动与停止spring boot工程的脚本示例

    在springboot项目启动有三种方式: 1.运行主方法程序 2.使用命令mvn spring-boot:run 在命令行运行 3.使用 mvn packpage打包位jar文件以后,使用java -jar yourapp.jar命令行运行 一般我们在开发的时候经常使用的是前面两种运行方式,在部署实施的时候使用的第三种方式,下面我们就重点说明下载linux环境中运行和停止springboot项目的指令和脚本: 一.指令 nohup 不挂断运行指令 一般在linux中可以直接使用: java -

  • Springboot创建子父工程过程图解

    这篇文章主要介绍了Springboot创建子父工程过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.创建子父工程 2.添加pom配置文件 2.1 父工程pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

  • IDEA搭建SpringBoot多模块聚合工程过程详解(多模块聚合工程)

    目录 一.搭建环境 (1)IDEA创建maven工程 (2)修改pom依赖 (4)创建app-pojo子工程 (5)创建app-mapper子工程 (6)创建app-service子工程 (7)创建app-web子工程 (8)统一依赖管理 (9)添加web依赖 (10)关联子工程依赖 (11)测试子工程依赖是否成功 二.集成MyBatis (1)父工程中添加MyBatis依赖管理 (2)app-mapper子工程引入MyBatis (4)配置mybatis和mysql数据源 (5)service

  • SpringBoot框架打包体积简化过程图解

    Springboot 框架极大的的简化了代码的框架集成开发,想当年还是用ssm框架组合时,那种配置令人头疼,还有Springboot框架自带tomcat服务器,简化了我们的环境搭建.但是Springboot框架自带tomcat服务器也有问题,就是导致一个服务很大,比如一个简单的业务系统,可能因为导入的第三方jar包比较多,导致打包出来的jar非常大.假如是内网上传至服务器,还好,但是假如是在阿里云这种云服务器,就很考验带宽的上行速度了.比如我家50M宽带,下行很快,但上行才3M,一个jar包10

  • Springboot主程序类注解配置过程图解

    @SpringBootApplication 点进这个注解看 进去第一个注解@SpringBootConfiguration看,上面有Configuration注解 @Configuration 这是Spring的配置类注解, 说明这个类一个配置类,里面都是配置文件 进第二个注解@EnableAutoConfiguration, 顾名思义,这是允许自动配置生效的注解, 接下来进去看它. @EnableAutoConfiguration 进去后也有两个注解:第一个AutoConfiguration

  • SpringCloud学习笔记之SpringCloud搭建父工程的过程图解

    目录 SpringCloud和SpringBoot版本选择 更详细的版本选择 相关技术选型 创建工程 创建父工程 新建maven工程 配置父工程的pom文件 SpringCloud是分布式微服务架构的一站式解决方案,十多种微服务架构落地技术的集合体,俗称微服务全家桶 SpringCloud和SpringBoot版本选择 自2019年以后官方建议使用2.0以后的版本 官网地址 在官网的页首可以看到最新版本以及对应的springboot版本 在官网可以看到官方推荐的springcloud与sprin

  • springboot创建拦截器过程图解

    这篇文章主要介绍了springboot创建拦截器过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.创建一个MyIntercepor实现HandlerInterceptor接口的类 二.创建一个WebMvcConfig实现WebMvcConfigurer的类 三.创建Controller以供访问 四.效果图 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • idea创建maven父子工程导致子工程无法导入父工程依赖

    目录 1.目录类型需要手动设置 2.pom文件没有被加载,在maven管理界面是灰色的 3.子工程引入了父工程的依赖包,却无法使用 创建maven父子工程时遇到一个问题,当子工程的名称前缀和父工程的名称一样时,子工程会出现一系列的问题.比如我的父工程名称是microservicecloud,子工程名称是microservicecloud-api. 那么子工程就会存在如下问题. 1.目录类型需要手动设置 2.pom文件没有被加载,在maven管理界面是灰色的 3.子工程引入了父工程的依赖包,却无法

  • springboot自定义starter实现过程图解

    这篇文章主要介绍了springboot自定义starter实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.创建一个Empty Project 2.在该工程中点击+,选择new module,新建一个maven工程 点击确定. 3.在该工程中点击+,选择new module,新建一个Spring Initializr工程 后面直接默认next,然后点击finishi. 两个都创建完毕之后点击apply,点击OK.得到如下结构: 4

  • SpringBoot路径映射实现过程图解

    这篇文章主要介绍了SpringBoot路径映射实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当然这个功能并非是springboot特有的,只是springboot提供了更简便的方法以供使用. 传统情况下我们跳转一个动态页面且并没有数据,也需要在controller中写一个跳转的controller. 也就是下面情况 这个时候我们就可以使用springboot的路径映射 我们只需要创建一个WebMvconfig类实现WebMvcCo

  • IDEA教程创建SpringBoot前后端分离项目示例图解

    目录 创建springboot项目 测试项目 按照MVC格式创建数据库项目 总结 springboot就是简化Spring应用中的初始化配置,快速创建项目而生的. 创建springboot项目 代开idea,点击File->New->Project,弹出如下对话框 输入组织.工程名,选择maven工程,注意:java版本号选择8 可以根据自己项目的需求选择依赖包,系统会自动将这些依赖包写入maven的pom文件,如下选择Spring Web.myBtias.mySQL驱动等.无需担心漏掉依赖包

随机推荐