构建聚合工程及整合String Boot

为什么要使用聚合工程

聚合的概念

把项目的各个模块(子工程)聚合在一起构建。一般用于分模块开发,最后整体打包发布
Maven Project独立运行
Maven Module无法独立运行

工程聚合和继承的区别

工程聚合

聚合是为了方便快速构件项目。
对于聚合模块来说,它知道有哪些被聚合的模块,但那些模块不知道这个聚合模块的存在

继承

继承是为了消除重复配置。
对于继承关系的父POM来说,它不知道有哪些子模块继承于它,但是子模块必须知道自己的父POM是什么;

聚合模块和微服务的区别

聚合模块

聚合工程就是把一个工程分为各个部件
这些包括根项目pom可以用来控制依赖的版本号
实体类taobao-bean,持久层接口taobao-dao,业务层service:taobao-service,web层taobao-web.工具类taobao-utils等
可以分为这么多的模块平行开发,这些部件都不可以单独运行,它们之间相互依赖,最后合在一起成为一个完整可运行的web项目

微服务

而这个web项目就可以成为是一个微服务
微服务可以是一个聚合工程,也可以不是,只是选择要不要这么开发而已
当其他的微服务需要使用另一个微服务的实体类时
这个时候我们可以直接导入它的实体类坐标即可,不用再次创建
就好像吃饭,朋友已经买了勺子,我喝汤的时候既可以用一下喝一口汤,达到重复使用的目的;

如何构建聚合工程

https://www.jianshu.com/p/9a7488b5bd0e

聚合工程整合Spring Boot

1. 在pom.xml中添加以下依赖

1.1 引入依赖parent

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>版本根据自己的需要填写</version>
		<!--  <version>2.2.2.RELEASE</version>-->
        <relativePath />
    </parent>

1.2 设置资源属性

    <!--设置资源属性-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- 版本根据自己的情况而定 java.version>1.8</java.version>-->
    </properties>

1.3 引入依赖dependency

    <dependencies>

        <!--核心Spring Boot starter,包括自动配置支持,日志和YAML-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
<!--            <exclusions>  剔除logging jar包 -->
<!--                <exclusion>-->
<!--                    <groupId>org.springframework.boot</groupId>-->
<!--                    <artifactId>spring-boot-starter-logging</artifactId>-->
<!--                </exclusion>-->
<!--            </exclusions>-->
        </dependency>

        <!--对全栈web开发的支持, 包括Tomcat和spring-webmvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--spring默认使用yml中的配置,但有时候要用传统的xml或properties配置, spring-boot-configuration-processor 可以实现修改-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

2. 在子模块api中添加application.yml

2.1 具体位置

在这里插入图片描述

2.2 所填内容

############################################################
#
# web访问端口号  约定:8088
#
############################################################
server:
  port: 8080
  tomcat:
    uri-encoding: UTF-8
  max-http-header-size: 80KB

############################################################
#
# 配置数据源信息
#
############################################################
spring:
  datasource:                                           # 数据源的相关配置
    type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
    driver-class-name: com.mysql.cj.jdbc.Driver          # mysql驱动
    url: jdbc:mysql://localhost:3306/foodie-shop?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC
    username: root
    password: root
    hikari:
      connection-timeout: 30000       # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
      minimum-idle: 5                 # 最小连接数
      maximum-pool-size: 20           # 最大连接数
      auto-commit: true               # 自动提交
      idle-timeout: 600000            # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
      pool-name: DateSourceHikariCP     # 连接池名字
      max-lifetime: 1800000           # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
      connection-test-query: SELECT 1

############################################################
#
# mybatis 配置
#
############################################################
mybatis:
type-aliases-package: com.imooc.pojo          # 所有POJO类所在包路径
mapper-locations: classpath:mapper/*.xml      # mapper映射文件

3. 添加启动类

3.1 所在位置

在这里插入图片描述

3.2 所填内容

package com.imooc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import tk.mybatis.spring.annotation.MapperScan;

//@SpringBootApplication
@MapperScan(basePackages = "com.imooc.mapper")
@SpringBootApplication()
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4. Hello Word测试

4.1 添加Controller

4.1.1 添加位置

在这里插入图片描述

4.1.2 所填内容
package com.imooc.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {


    @GetMapping("/hello")
    public Object hello(){
        return "Hell Spring";
    }

    @GetMapping("/hi")
    public Object hi(){
        return "Hi Spring";
    }


}

4.2 测试

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值