前言
我之前是學(xué)spring mvc的,后面聽同學(xué)說spring boot挺好用,極力推薦我學(xué)這個鬼。一開始,在網(wǎng)上找spring boot的學(xué)習(xí)資料,他們博文寫得不是說不好,而是不太詳細(xì)。
我就在想我要自己寫一篇盡可能詳細(xì)的文章出來,下面話不多說了,來一看看詳細(xì)的介紹吧。
技術(shù)棧
- spring
- spring boot
- mybatis
- mongodb
- mysql
設(shè)計(jì)模式
mvc
功能
- 注冊(用戶完成注冊后是默認(rèn)未激活的,程序有個定時器在檢測沒有激活的用戶,然后發(fā)一次郵件提醒用戶激活)
- 登錄
- 發(fā)帖(帖子存在mongodb)
- 評論
- 其他功能正在添加中...
編輯器
intellj idea 2017
目錄結(jié)構(gòu)
正文
第一步先讓我們創(chuàng)建項(xiàng)目吧,打開idea file -> new -> project。我們是創(chuàng)建spring boot項(xiàng)目,所以來到project這一步是選spring initailizr,選好jdk再點(diǎn)next。
然后就來到了一下這個界面,這里是讓你填寫項(xiàng)目的目錄,你喜歡就ok。
接下來就是讓你選擇需要那些依賴,要把那個web,mybaits,mongodb,數(shù)據(jù)庫(我用的是mysql,所以我勾選了mysql)這些勾選上。
最后是填寫項(xiàng)目名字,然后點(diǎn)finish就完成創(chuàng)建了。
如何整合spring+springboot+mybatis+mongodb
在第一步中,你填的項(xiàng)目目錄下,我喜歡建個文件夾叫做controller,當(dāng)然用來放controller了,entity文件夾放實(shí)體類,service文件是存放業(yè)務(wù)邏輯層,這個文件下還有serviceimpl文件夾對應(yīng)的是存放service的實(shí)現(xiàn)類。
第二步配置,詳細(xì)的代碼我已經(jīng) 放在github上了 點(diǎn)擊跳轉(zhuǎn)到github 。我們的配置寫在一個叫做application.yml文件里。你們新建的項(xiàng)目是默認(rèn)是application.properties文件,但是.yml文件配置起來比.properties文件簡潔,所以個人比較喜歡.yml文件。
怎么個簡潔法,對比一下你就知道了。.properties配置起來是這樣的(這里用配置發(fā)送郵件為例子)
1
2
3
4
5
6
|
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配置起來是這樣的:
1
2
3
4
5
6
7
8
9
10
11
12
|
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下),
1
2
3
4
5
6
7
8
9
10
11
12
|
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)是一樣的。
1
2
3
|
mybatis: type-aliases- package : com.example.junior.entity //這里是實(shí)體類所在的包 mapper-locations: classpath:/mapper/*.xml //這里是放sql語句的映射文件 |
還有一個值得注意的地方是juniorapplication.java,它不僅僅是啟動引導(dǎo)類,還是個配置類。所以有一些配置需要寫在這里面。
1
2
3
4
5
6
7
8
9
10
|
@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)建項(xiàng)目的時候,忘記勾選某一些依賴的話不要緊,可以在pom.xml文件里添加依賴。添加完成后在pom.xml右鍵 點(diǎn)擊 maven -> reimport就ok了
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。
原文鏈接:https://segmentfault.com/a/1190000012349567