单手撸了个springboot+mybatis+druid
最近身邊的程序員掀起了學(xué)習(xí)springboot的熱潮,說(shuō)什么學(xué)會(huì)了springboot在大街上就可以橫著走、什么有了springboot媽媽再也不擔(dān)心我的編程了、什么BAT都喜歡的框架...聽(tīng)得作者那個(gè)心癢癢的,于是找了個(gè)時(shí)間,下載了個(gè)idea來(lái)玩一波springboot,對(duì)了...用springboot最好用idea,如果你還在用eclipse,刪了吧。
在這里解釋一下為什么是springboot+mybatis+druid,是因?yàn)樽髡哒J(rèn)為但凡任何一個(gè)有靈魂的項(xiàng)目,都少不了數(shù)據(jù)庫(kù),作者不喜歡用JPA那種混SQL的語(yǔ)法,因此選了mybatis,而Druid是阿里系(真香~)的一種數(shù)據(jù)庫(kù)連接池框架,在上一個(gè)項(xiàng)目作者用的屢試不爽,因此打算繼續(xù)用,為啥屢試不爽?看文末吧。
文章提綱:
1. 創(chuàng)建springboot工程
只要你有idea,創(chuàng)建一個(gè)springboot工程,就跟捏死一個(gè)螞蟻一樣簡(jiǎn)單,因?yàn)閕dea里深度集成了對(duì)springboot項(xiàng)目的支持,你直接不停的next到最后,它就會(huì)幫你創(chuàng)建出一個(gè)springboot工程。
2. 配置pom.xml
想想,我們需要哪些jar?
數(shù)據(jù)庫(kù)要用到mybatis,數(shù)據(jù)庫(kù)連接池要用到Druid、MySQL橋接器要用到mysql-connector,因此要maven倉(cāng)庫(kù)(點(diǎn)我去倉(cāng)庫(kù))中找到搜索這些pom加進(jìn)去。注意,mybatis要用mybatis-spring-boot-starter。
把上面這些pom放到pom.xml的dependencies中
細(xì)心的老鐵會(huì)發(fā)現(xiàn),MySQL的version里的內(nèi)容是紅色的,這是什么原因呢?
這是因?yàn)槲覀円雙om時(shí),這些版本的jar在本地maven倉(cāng)庫(kù)還沒(méi)有,而Druid的pom里的version沒(méi)有顯示紅色,是因?yàn)橹暗捻?xiàng)目用到了這個(gè)版本的Druid,已經(jīng)被下載到本地Maven倉(cāng)庫(kù)里了。
因此我們需要把本地沒(méi)有的jar下載到本地倉(cāng)庫(kù),右鍵pom.xml彈出菜單,選擇Maven,彈出菜單選擇reimport
Reimport過(guò)程中再idea底部會(huì)有進(jìn)度條顯示,等進(jìn)度條消失,在觀察pom.xml,紅色已經(jīng)消失,說(shuō)明依賴(lài)已經(jīng)裝備完成。
接下來(lái)就是要多springboot項(xiàng)目做一個(gè)全局配置,默認(rèn)會(huì)在src->main->resource目錄下生產(chǎn)空白文件application.properties,作者喜歡用yml因此直接改名成yml即可。
首先是數(shù)據(jù)源的配置,下面是一份數(shù)據(jù)源的配置,每個(gè)參數(shù)的解釋都寫(xiě)了注釋,因此讀者可以直接復(fù)制一下內(nèi)容進(jìn)去,只需要改一下url、username、password
4. 設(shè)置mybatis
繼續(xù)在application.yml中設(shè)置mybatis,mybatis的配置也簡(jiǎn)單,
主要是為了設(shè)置mybatis的配置文件已經(jīng)mapper文件所在。
最終application.yml的內(nèi)容如下圖:
5. hello world
走到這一步,基本上已經(jīng)是大功告成了,我們來(lái)寫(xiě)一個(gè)測(cè)試類(lèi)試試,在根目錄創(chuàng)建一個(gè)controller的包,在包中創(chuàng)建一個(gè)Java類(lèi),如下:
@Controller @RequestMapping("/test") public class TestController {@Resourceprivate MemeberMapper memeberMapper=null;@RequestMapping("/one")@ResponseBodypublic Map testdb(){return memeberMapper.findObjectById(1);} }創(chuàng)建完之后,我們運(yùn)行項(xiàng)目,找到啟動(dòng)類(lèi)MybatisAndDruidApplication右鍵run,發(fā)現(xiàn)報(bào)錯(cuò),提示沒(méi)有掃描到mapper包,為什么呢?那是mapper需要手動(dòng)在啟動(dòng)類(lèi)中加入:
@MapperScan("com.example.mybatisanddruid.mapper")這樣啟動(dòng)類(lèi)就變成:
@SpringBootApplication @MapperScan("com.example.mybatisanddruid.mapper") public class MybatisAndDruidApplication {public static void main(String[] args) {SpringApplication.run(MybatisAndDruidApplication.class, args);} }再次運(yùn)行,沒(méi)有報(bào)錯(cuò),在瀏覽器輸入:http://localhost:8888/test/one
輸出了ID為1的記錄:
由此可見(jiàn),springboot-mybatis已經(jīng)搭建成功,此時(shí)有人會(huì)問(wèn),那Druid呢?
druid的使用需要做一些配置,現(xiàn)在我們來(lái)在根目錄下創(chuàng)建一個(gè)包c(diǎn)onfig,在config包中間創(chuàng)建一個(gè)叫做DruidConfig.java,并且在里寫(xiě)入下面的內(nèi)容:
@Configuration public class DruidConfig {@Beanpublic ServletRegistrationBean druidServlet() { // 主要實(shí)現(xiàn)WEB監(jiān)控的配置處理ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // 進(jìn)行druid監(jiān)控的配置處理操作servletRegistrationBean.addInitParameter("allow","127.0.0.1,192.168.1.159"); // 白名單servletRegistrationBean.addInitParameter("deny", "192.168.1.200"); // 黑名單servletRegistrationBean.addInitParameter("loginUsername", "stat"); // 用戶名servletRegistrationBean.addInitParameter("loginPassword", "Wkt_sTat_1031"); // 密碼servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否可以重置數(shù)據(jù)源return servletRegistrationBean ;}@Beanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;filterRegistrationBean.setFilter(new WebStatFilter());filterRegistrationBean.addUrlPatterns("/*"); // 所有請(qǐng)求進(jìn)行監(jiān)控處理filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");return filterRegistrationBean ;}@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druidDataSource() {return new DruidDataSource();}}配置中的內(nèi)容就不一一細(xì)講, 有興趣的直接百度一下druid就出來(lái)很多答案了,現(xiàn)在重新運(yùn)行一下項(xiàng)目,運(yùn)行成功之后,在瀏覽器中輸入:http://localhost:8888/druid
這時(shí)候,druid監(jiān)控平臺(tái)就出現(xiàn)了
此時(shí)我們輸入在DruidConfig中設(shè)置的loginUsername和loginPassword點(diǎn)擊登錄,一個(gè)完整的druid監(jiān)控管理平臺(tái)就呈現(xiàn)在我們啦~
Druid非常強(qiáng)大,在這里你可以查看SQL的執(zhí)行情況、慢SQL、API請(qǐng)求情況等,根據(jù)這些可以做一些性能的調(diào)優(yōu),至于詳細(xì)的用法,就靠大家自行學(xué)習(xí)啦~
如果有老鐵需要項(xiàng)目源碼,請(qǐng)加我微信:sisi-ceo。
覺(jué)得本文對(duì)你有幫助?請(qǐng)分享給更多人
關(guān)注「編程無(wú)界」,提升裝逼技能
總結(jié)
以上是生活随笔為你收集整理的单手撸了个springboot+mybatis+druid的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。