使用idea开始一个聚合工程整合springboot

创建一个maven工程

使用idea
最开始是new–project—maven,创建出来父工程
使用idea开始一个聚合工程整合springboot_第1张图片

在父工程基础上new–module–maven,创建出来相应的子工程
使用idea开始一个聚合工程整合springboot_第2张图片
使用idea开始一个聚合工程整合springboot_第3张图片
目录结构

  • foodie-dev
    • foodie-dev-common
    • foodie-dev-pojo
    • foodie-dev-mapper
    • foodie-dev-service
    • foodie-dev-api

每创建一个子工程,都会在父工程中的pom.xml文件中添加module

    <modules>
        <module>foodie-dev-common</module>
        <module>foodie-dev-pojo</module>
        <module>foodie-dev-mapper</module>
        <module>foodie-dev-service</module>
        <module>foodie-dev-api</module>
    </modules>

在父工程中的pom文件中添加以下内容

1.引入依赖 parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.5.RELEASE</version>
    <relativePath />
</parent>

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>

3.引入依赖 dependency

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
        <!--排除springboot的日志,接下来会引入别的日志-->
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--springboot默认的是yml,引入这个依赖之后,我们可以解析其他的配置文件-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

各个工程中的引用

api--->service---->mapper---->pojo----->common
按照上面的依赖关系进行添加
所以要在pom.xml文件中进行添加依赖,如果在pojo中添加依赖了common,那么在mapper中只需要添加依赖pojo即可。
<dependencies>
        <dependency>
            <groupId>com.imooc</groupId>
            <artifactId>foodie-dev-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

<dependencies>
        <dependency>
            <groupId>com.imooc</groupId>
            <artifactId>foodie-dev-pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

在foodie-dev-api 文件中进行操作,开始启动项目

使用idea开始一个聚合工程整合springboot_第4张图片
application.java

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

HelloController.java

@RestController
public class HelloController {
     
    @GetMapping
    public String hello(){
     
        return "hello world!";
    }
}

在启动之前需要进行安装
在最右侧的maven中选择父工程,然后找到生命周期,选择install
使用idea开始一个聚合工程整合springboot_第5张图片

至此就可以启动项目了

在foodie-dev-api的子工程里,启动Application
使用idea开始一个聚合工程整合springboot_第6张图片

整合数据源HikariCP

在父工程中添加依赖

<!-- mysql驱动 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.41</version>
</dependency>
<!-- mybatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

在foodie-dev-api的application.xml文件中添加

############################################################
#
# web访问端口号  约定:8088
#
############################################################
server:
  port: 8088
  tomcat:
    uri-encoding: UTF-8
  max-http-header-size: 80KB
############################################################
#
# 配置数据源信息
#
############################################################
spring:
  datasource:                                           # 数据源的相关配置
      type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
      driver-class-name: com.mysql.jdbc.Driver          # mysql驱动
      url: jdbc:mysql://localhost:3306/foodie-shop-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
      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映射文件

当我们添加了mybatis后,需要在api的启动上添加注解,即是扫描mapper所在包的注解。

@SpringBootApplication
//扫描mybatis通用类所在的包
@MapperScan(basePackages = "com.imooc.mapper")
public class Application {
     
    public static void main(String[] args) {
     
        SpringApplication.run(Application.class,args);
    }
}

导入的是tk开头的那个包,其他的会报错

import tk.mybatis.spring.annotation.MapperScan;

踩坑

我在启动的时候出现了这个错误,往下翻可以看出来错误的位置
使用idea开始一个聚合工程整合springboot_第7张图片
使用idea开始一个聚合工程整合springboot_第8张图片
然后我发现我yml文件中的格式有问题
使用idea开始一个聚合工程整合springboot_第9张图片

你可能感兴趣的:(慕课网课程学习,java,spring,boot)