IDEA创建SpringBoot的多模块项目并整合Mybatis完整教程

本文详细介绍了如何使用SpringInitializr创建SpringBoot的父模块和子模块,包括删除无用文件、配置模块依赖、启动类创建等步骤。同时,讲解了数据库依赖配置,如application.yml文件的编写,以及在不同模块中配置数据库连接。最后,通过一个简单的AdminController测试了用户数据获取,展示了项目的运行效果和结构。
摘要由CSDN通过智能技术生成

一、创建父模块

1、首先在IDEA中使用Spring Initializr的方式创建一个springboot工程,具体过程:点击File—>New—>Project,在弹出的界面选择Spring Initializr,然后点击Next。
在这里插入图片描述

2、由于默认的start.spring.io经常连接不上,可以换成阿里云的start.aliyun.com。在弹出的New Project界面输入Group与Artifact,一般遵守相应的规范(即GroupId为域.公司名,例如com.company,Artifact为项目名,例如testproject),然后点击Next。

在这里插入图片描述

3、父工程的Dependencies暂时不需要选择,根据后续实际情况引入即可,所以在这里直接点击Next进入到下一步。
在这里插入图片描述

4、创建完的项目目录如下
在这里插入图片描述

5、这时把没用的.mvn目录,src目录,HELP.md,mvnw还有mvnw.cmd都删除,最终只保留.gitignore和pom.xml,也可以保留README.md。现在的目录结构如下所示:
在这里插入图片描述

二、创建子模块

以上是创建父模块,下面创建子模块:

1、在父模块的根目录blogtest上点右键,在弹出的框里选择New->Module
在这里插入图片描述

2、选择Maven,点击Next
在这里插入图片描述

3、填写Module,点击Finish。

4、我们已同样的步骤创建blog-front和blog-system模块。

blog-system 放的是系统公用的类和文件以及依赖,blog-system被blog-front模块和blog-back模块依赖。

blog-front 系统前台的应用。

blog-back系统后台应用。
在这里插入图片描述

三、模块间依赖配置

1、现在我们的blog-back和blog-front模块还不能启动,因为它们没有添加spring-boot-starter依赖和启动类。现在我们将父模块中的spring-boot-starter删掉。在blog-system模块中添加如下依赖,然后刷新maven:

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

2、修改父模块的pom.xml代码

将文件中的如下代码删除

 <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>
    </dependencies>
</dependencyManagement>

新增代码如下后刷新maven

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.1</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.hp</groupId>
            <artifactId>blog-system</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

3、在blog-front和blog-back中添加blog-sytem依赖,刷新maven。

<!--引入System模块-->
<dependency>
    <groupId>com.hp</groupId>
    <artifactId>blog-system</artifactId>
</dependency>

4、在blog-front中新建包com.hp.blog,并新建启动类:BlogFrontApplication.java,代码如下:


@MapperScan("com.hp.**.mapper")
@SpringBootApplication

public class BlogFrontApplication {

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

}

同样的方法在blog-back中建立包com.hp.blog和启动类BlogBackApplication.java,代码如下:

@MapperScan("com.hp.**.mapper")
@SpringBootApplication
public class BlogBackApplication {

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

}

(如果子模块下的pom.xml文件显示灰色并有删除线,我们需要大开设置,搜索maven,如下图所示,在忽略文件这里将忽略文件前的勾去掉,再刷新maven即可。)

5、最后我们刷新一下maven。

点击软件右上角的启动框,我们发现已经有BlogBackApplication和BlogFrontApplication启动方式了。但还有可以看到一个报错的启动方式BlogApplication,那是父模块的,我们不需要,点击Edit Configuration将其删除。
在这里插入图片描述
在这里插入图片描述

删除后效果如下
在这里插入图片描述

四、数据库依赖配置

1、我们分别在blog-front模块和blog-back模块的resources目录中新建application.yml和application-dev.yml文件。application.yml中的代码如下所示,这两个,模块的application.yml基本相同,只有端口号不同,application-dev.yml可以不用写代码。

#端口号配置blog-front和blog-back端口号要不相同

server:
  port: 端口号

# SPRING PROFILES
spring:
  profiles:
    active: center-dev,dev

mybatis:
  mapper-locations: classpath*:mapper/*.xml

2、在blog-system的resources目录下新建application-center-dev.yml文件。里面主要放数据库连接的配置和其他front模块和back模块需要的公共配置。代码仅供参考,其中mybatis配置必须要有否则会找不到mapper文件:

spring:
  datasource:
    druid:
      url: jdbc:mysql://xxx/blogtest?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8
      username: root
      password: root
      driver-class-name: com.mysql.cj.jdbc.Driver
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 10000
      testOnBorrow: true
      testOnReturn: false
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
  servlet:
    multipart:
      max-file-size: 50MB
      max-request-size: 100MB
...
mybatis:
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations: classpath*:/mapper/*.xml

现在分别启动blog-front和blog-back,发现已经可已成功启动了。项目目前的结构如下
在这里插入图片描述

五、获取用户名测试

1、在 blog-system模块中新建com.hp.blog包,后再向blog包内新建mapper,service,和pojo包,再向resource目录中新建mapper文件夹。

向blog-front的blog包中新建controller包,现在项目结构如下:
在这里插入图片描述

2、在mapper中书写Adminmapper类,pojo中书写实体类,service中书写AdminService类,blogfont中书写controller类。现在项目结构如下:

在这里插入图片描述

除AdminController 外其他代码我不展示,AdminController中的主要代码如下:

@Controller
public class AdminController {

    @Resource
    private AdminService adminService;

    @RequestMapping("/getadmin")
    @ResponseBody
    public Admin getAdmin(){
        Admin admin=adminService.getAdminById(3);
        return admin;
    }
}

3、重启blog-front项目。

如果有报错未能注入bean…mapper,请检查启动类上的注解:@MapperScan("com.hp..mapper"),和相关application.yml中的mapper扫描配置,或者*mapper.xml文件中的代码。

4、获取用户信息测试

成功项目启动,现在我们在浏览器里面访问测试,如下所示,可以看出成功获取到了用户数据:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值