如何整合Spring + SpringBoot + MyBatis + MongoDB

代码翱翔者
• 阅读 21146

前言

我之前是学SpringMVC的,后面听同学说SpringBoot挺好用,极力推荐我学这个鬼。一开始,在网上找SpringBoot的学习资料,他们博文写得不是说不好,而是不太详细。我就在想我要自己写一篇尽可能详细的文章出来。

技术栈

  • Spring
  • Spring Boot
  • MyBatis
  • MongoDB
  • MySQL

设计模式

MVC

功能

  • 注册(用户完成注册后是默认未激活的,程序有个定时器在检测没有激活的用户,然后发一次邮件提醒用户激活)
  • 登录
  • 发帖(帖子存在MongoDB)
  • 其他功能正在添加中...

编辑器

  • IntellJ IDEA 2017

目录结构

如何整合Spring + SpringBoot + MyBatis + MongoDB

正文

第一步先让我们创建项目吧,打开idea File -> New -> Project。我们是创建Spring Boot项目,所以来到Project这一步是选Spring Initailizr,选好jdk再点next。
如何整合Spring + SpringBoot + MyBatis + MongoDB

然后就来到了一下这个界面,这里是让你填写项目的目录,你喜欢就ok。
如何整合Spring + SpringBoot + MyBatis + MongoDB

接下来就是让你选择需要那些依赖,要把那个Web,MyBaits,MongoDB,数据库(我用的是mysql,所以我勾选了mysql)这些勾选上。
如何整合Spring + SpringBoot + MyBatis + MongoDB

最后是填写项目名字,然后点Finish就完成创建了。

如何整合Spring+SpringBoot+MyBatis+MongoDB
如何整合Spring + SpringBoot + MyBatis + MongoDB

在第一步中,你填的项目目录下,我喜欢建个文件夹叫做Controller,当然用来放Controller了,Entity文件夹放实体类,Service文件是存放业务逻辑层,这个文件下还有ServiceImpl文件夹对应的是存放Service的实现类。

第二步配置,详细的代码我已经 放在github上了 点击跳转到github。我们的配置写在一个叫做application.yml文件里。你们新建的项目是默认是application.properties文件,但是.yml文件配置起来比.properties文件简洁,所以个人比较喜欢.yml文件。

怎么个简洁法,对比一下你就知道了。.properties配置起来是这样的(这里用配置发送邮件为例子)

spring.mail.host=smtp.qq.com
spring.mail.username=用户名
spring.mail.password=密码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

而.yml配置起来是这样的:

mail:
    host: smtp.qq.com
    username: //用来发送邮件的账号
    password: //这里是IMAP/SMTP服务的授权密码
    properties:
      mail:
        stmp:
          auth: true
          starttls:
            enable: true
            required: true
    port: 587

配置数据源(数据源、MongoDB还有mail都是在spring下),

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    platform: mysql
  jpa:
    show-sql: true
  data:
    mongodb:
      uri: mongodb://localhost:27017/blog  //blog记得换成你取的名字

配置MyBaits,它在.yml和spring地位一样高,所以mybatis,spring缩进是一样的。

mybatis:
  type-aliases-package: com.example.junior.Entity  //这里是实体类所在的包
  mapper-locations: classpath:/mapper/*.xml  //这里是放sql语句的映射文件

还有一个值得注意的地方是JuniorApplication.java,它不仅仅是启动引导类,还是个配置类。所以有一些配置需要写在这里面。

@SpringBootApplication
@EnableTransactionManagement
@EnableCaching
@EnableScheduling //我有个定时器,这个注解是让它发现定时器
@MapperScan(basePackages = "com.example.junior.Dao") //让它去发现你的Dao层
public class JuniorApplication {
    public static void main(String[] args) {
        SpringApplication.run(JuniorApplication.class, args);
    }
}

如果你在创建项目的时候,忘记勾选某一些依赖的话不要紧,可以在pom.xml文件里添加依赖。添加完成后在pom.xml右键 点击 Maven -> Reimport就Ok了

最后

如果有帮助到你的话,请打赏我 0.5元。
支付宝打赏,请扫
如何整合Spring + SpringBoot + MyBatis + MongoDB
微信打赏,请扫
如何整合Spring + SpringBoot + MyBatis + MongoDB

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这