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