Springboot父子工程搭建到部署

文前知识

  1. 子项目可以继承父项目的依赖, 前提是需要使用parent标签指定父项目
  2. 子项目可以单独引入依赖, 依赖只对当前子项目有效
  3. 子项目中没有页面打包方式可以为jar, 有页面打包使用war

创建父工程

 就按正常创建springboot项目就行

 把src文件夹删除,以下红框的都可以删除,.gitignore如果用不上git也可以删除

 创建子工程

挑一个模块出来详细说,其他模块都是同样道理,就不赘述了。

右键项目新建Module

新建model模块存放各种对象。 注意最后的Package:开始会把sparrow_model也带上,我们把它去掉

 创建完成后我们按以下几个步骤来:

  1. 把启动类删除
  2. 修改pom文件<parent>标签中内容改为我们自己建的父工程
  3. 标明打包方式为jar <packaging>jar</packaging>
  4. 添加这个模块所需要的依赖

 接下来,先clean,再install

 【注意】:web模块的主程序类不要删除,作为全局的唯一入口

其他按上述步骤依次创建好

 主程序所在模块

 说一下主程序所在模块的不同点:

首先就是组件扫描,接口层肯定需要用到服务和实体类

 这样我们在pom中引入另外两个模块,在使用其他模块的服务时就不会报未定义了。

 然后添加打包信息

<!--多模块打包:只需在启动类所在模块的POM文件:指定打包插件 -->
    <build>
        <!-- 设置最终打包的名称-->
        <finalName>sparrow-1.1</finalName>
        <plugins>
            <plugin>
                <!--该插件主要用途:构建可执行的JAR -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--指定Main Class为全局的唯一入口-->
                    <mainClass>com.sparrow.web.SparrowWebApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

            <!--设置自己目录下的配置文件-->
            <resource>
                <!--下方resources的文件夹名字要和自己项目的文件夹名确认一致才行 很多人就是忽略了名字不一致 -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
    </build>

修改父工程

子模块都创建完成后,修改父模块的pom文件

  1. 添加<packaging>pom</packaging>
  2. 添加子模块信息
  3. 添加依赖管理,我这里随便加的

Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。

 服务测试 

在sparrow_model中新增User类

@Data
public class User {
    private Integer id;

    private String name;
}

 那么我在服务层想用的话,就要在sparrow_service的pom文件中加上

 在sparrow_service中模拟了一下查询数据

@Service("userService")
public class UserServiceImpl implements UserService {
    @Override
    public User getUserById(Integer id) {
        User user = new User();
        user.setId(1);
        user.setName("花无缺");
        return user;
    }
}

 再把这个服务暴露给接口层,在sparrow_web中新增UserController

@RestController
@RequestMapping("/v1/user")
public class UserController {

    @Autowired
    UserService userService;

    @GetMapping("/{id}")
    User getUserById(@PathVariable("id")Integer id){
        return userService.getUserById(id);
    }
}

直接启动主程序类,请求接口

 打包部署

找到父工程,先clean,再package 

 在文件夹中找到打包好的jar包

 在这个jar的根目录下执行java -jar sparrow-1.1.jar

补充知识

jar包和war包的区别:

  1. war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块;jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。
  2. war包是做好一个web应用后,通常是网站,打成包部署到容器中;jar包通常是开发时要引用通用类,打成包便于存放管理。
  3. war是Sun提出的一种Web应用程序格式,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织;classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)可以打包成jar放到WEB-INF下的lib目录下。JAR文件格式以流行的ZIP文件格式为基础。与ZIP文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoneWalker、

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值