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)文章
SpringBoot整合Mybatis自定義攔截器不起作用的處理方案
這篇文章主要介紹了SpringBoot整合Mybatis自定義攔截器不起作用的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Spring Boot使用Servlet及Filter過(guò)程詳解
這篇文章主要介紹了Spring Boot使用Servlet及Filter過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
教你用Java Swing實(shí)現(xiàn)自助取款機(jī)系統(tǒng)
今天給大家?guī)?lái)的是關(guān)于JAVA的相關(guān)知識(shí),文章圍繞著如何用Java Swing實(shí)現(xiàn)自助取款機(jī)系統(tǒng)展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Java入門(mén)基礎(chǔ)之Java的基本語(yǔ)法與Java所支持的數(shù)據(jù)類型
這篇文章主要介紹了Java入門(mén)基礎(chǔ)之Java的基本語(yǔ)法與Java所支持的數(shù)據(jù)類型,熟悉語(yǔ)法和數(shù)據(jù)類型通常是了解一種編程語(yǔ)言的開(kāi)始,需要的朋友可以參考下2016-02-02
IDEA創(chuàng)建Servlet并配置web.xml的實(shí)現(xiàn)
這篇文章主要介紹了IDEA創(chuàng)建Servlet并配置web.xml的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Jmeter正則表達(dá)式提取器實(shí)現(xiàn)過(guò)程圖解
這篇文章主要介紹了Jmeter正則表達(dá)式提取器實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
java實(shí)現(xiàn)/創(chuàng)建線程的幾種方式小結(jié)
在JAVA中,用Thread類代表線程,所有線程對(duì)象都必須是Thread類或者Thread類子類的實(shí)例,下面這篇文章主要介紹了java實(shí)現(xiàn)/創(chuàng)建線程的幾種方式,需要的朋友可以參考下2021-08-08

