Spring + Spring Boot + MyBatis + MongoDB的整合教程
前言
我之前是學(xué)Spring MVC的,后面聽同學(xué)說Spring Boot挺好用,極力推薦我學(xué)這個鬼。一開始,在網(wǎng)上找Spring Boot的學(xué)習(xí)資料,他們博文寫得不是說不好,而是不太詳細(xì)。
我就在想我要自己寫一篇盡可能詳細(xì)的文章出來,下面話不多說了,來一看看詳細(xì)的介紹吧。
技術(shù)棧
- Spring
- Spring Boot
- MyBatis
- MongoDB
- MySQL
設(shè)計模式
MVC
功能
- 注冊(用戶完成注冊后是默認(rèn)未激活的,程序有個定時器在檢測沒有激活的用戶,然后發(fā)一次郵件提醒用戶激活)
- 登錄
- 發(fā)帖(帖子存在MongoDB)
- 評論
- 其他功能正在添加中...
編輯器
IntellJ IDEA 2017
目錄結(jié)構(gòu)
正文
第一步先讓我們創(chuàng)建項目吧,打開idea File -> New -> Project。我們是創(chuàng)建Spring Boot項目,所以來到Project這一步是選Spring Initailizr,選好jdk再點next。
然后就來到了一下這個界面,這里是讓你填寫項目的目錄,你喜歡就ok。
接下來就是讓你選擇需要那些依賴,要把那個Web,MyBaits,MongoDB,數(shù)據(jù)庫(我用的是mysql,所以我勾選了mysql)這些勾選上。
最后是填寫項目名字,然后點Finish就完成創(chuàng)建了。
如何整合Spring+SpringBoot+MyBatis+MongoDB
在第一步中,你填的項目目錄下,我喜歡建個文件夾叫做Controller,當(dāng)然用來放Controller了,Entity文件夾放實體類,Service文件是存放業(yè)務(wù)邏輯層,這個文件下還有ServiceImpl文件夾對應(yīng)的是存放Service的實現(xiàn)類。
第二步配置,詳細(xì)的代碼我已經(jīng) 放在github上了 點擊跳轉(zhuǎn)到github (本地下載)。我們的配置寫在一個叫做application.yml文件里。你們新建的項目是默認(rèn)是application.properties文件,但是.yml文件配置起來比.properties文件簡潔,所以個人比較喜歡.yml文件。
怎么個簡潔法,對比一下你就知道了。.properties配置起來是這樣的(這里用配置發(fā)送郵件為例子)
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: //用來發(fā)送郵件的賬號 password: //這里是IMAP/SMTP服務(wù)的授權(quán)密碼 properties: mail: stmp: auth: true starttls: enable: true required: true port: 587
配置數(shù)據(jù)源(數(shù)據(jù)源、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縮進(jìn)是一樣的。
mybatis: type-aliases-package: com.example.junior.Entity //這里是實體類所在的包 mapper-locations: classpath:/mapper/*.xml //這里是放sql語句的映射文件
還有一個值得注意的地方是JuniorApplication.java,它不僅僅是啟動引導(dǎo)類,還是個配置類。所以有一些配置需要寫在這里面。
@SpringBootApplication @EnableTransactionManagement @EnableCaching @EnableScheduling //我有個定時器,這個注解是讓它發(fā)現(xiàn)定時器 @MapperScan(basePackages = "com.example.junior.Dao") //讓它去發(fā)現(xiàn)你的Dao層 public class JuniorApplication { public static void main(String[] args) { SpringApplication.run(JuniorApplication.class, args); } }
如果你在創(chuàng)建項目的時候,忘記勾選某一些依賴的話不要緊,可以在pom.xml文件里添加依賴。添加完成后在pom.xml右鍵 點擊 Maven -> Reimport就Ok了
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
springboot2.3.1替換為其他的嵌入式servlet容器的詳細(xì)方法
這篇文章主要介紹了springboot2.3.1替換為其他的嵌入式servlet容器的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Java 使用JdbcTemplate 中的queryForList發(fā)生錯誤解決辦法
這篇文章主要介紹了Java 使用JdbcTemplate 中的queryForList發(fā)生錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-07-07學(xué)習(xí)Java模擬實現(xiàn)百度文檔在線瀏覽
這片文章介紹了如何使用Java模擬實現(xiàn)百度文檔在線瀏覽,文章思路清晰,需要的朋友可以參考下2015-07-07Java數(shù)據(jù)結(jié)構(gòu)之優(yōu)先級隊列(PriorityQueue)用法詳解
優(yōu)先級隊列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),操作的數(shù)據(jù)帶有優(yōu)先級,這種數(shù)據(jù)結(jié)構(gòu)就是優(yōu)先級隊列(PriorityQueue)。本文將詳細(xì)講講Java優(yōu)先級隊列的用法,感興趣的可以了解一下2022-07-07Spring?boot?整合RabbitMQ實現(xiàn)通過RabbitMQ進(jìn)行項目的連接
RabbitMQ是一個開源的AMQP實現(xiàn),服務(wù)器端用Erlang語言編寫,支持多種客戶端,這篇文章主要介紹了Spring?boot?整合RabbitMQ實現(xiàn)通過RabbitMQ進(jìn)行項目的連接,需要的朋友可以參考下2022-10-10基于@RequestBody和@ResponseBody及Stringify()的作用說明
這篇文章主要介紹了基于@RequestBody和@ResponseBody及Stringify()的作用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06