IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> IDEA创建SpringBoot的多模块项目并整合Mybatis完整教程 -> 正文阅读

[Java知识库]IDEA创建SpringBoot的多模块项目并整合Mybatis完整教程

一、创建父模块

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、获取用户信息测试

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

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:46:11  更:2021-07-17 11:47:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/18 18:19:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码