您好,登錄后才能下訂單哦!
本文旨在用最通俗的語言講述最枯燥的基本知識
最近身邊的程序員掀起了學習springboot的熱潮,說什么學會了springboot在大街上就可以橫著走、什么有了springboot媽媽再也不擔心我的編程了、什么BAT都喜歡的框架…聽得作者那個心癢癢的,于是找了個時間,下載了個idea來玩一波springboot,對了…用springboot最好用idea,如果你還在用eclipse,刪了吧。
在這里解釋一下為什么是springboot+mybatis+druid,是因為作者認為但凡任何一個有靈魂的項目,都少不了數據庫,作者不喜歡用JPA那種混SQL的語法,因此選了mybatis,而Druid是阿里系(真香~)的一種數據庫連接池框架,在上一個項目作者用的屢試不爽,因此打算繼續用,為啥屢試不爽?看文末吧。
文章提綱:
創建springboot工程
配置pom.xml
配置數據源
設置mybatis
hello world
設置Druid監控配置
只要你有idea,創建一個springboot工程,就跟捏死一個螞蟻一樣簡單,因為idea里深度集成了對springboot項目的支持,你直接不停的next到最后,它就會幫你創建出一個springboot工程。
首先打開idea->Create New project->選擇項目類型:這里選擇spring initializr,然后next。
創建項目,填寫項目名稱,注意:不要能駝峰寫法,可以用中橫線,填寫完畢后繼續next。
選擇依賴,所謂依賴就是你在設計這個項目的框架時,分析這個項目需要用到哪些jar或者組件,比如緩存要用到Redis,數據庫要用到MySQL等…這里因為演示項目,就不選擇太多其它亂七八糟的依賴了。
選好依賴之后,又是一路狂點next,直到最后finish一下,一個springboot項目就創建好了。
想想,我們需要哪些jar?
數據庫要用到mybatis,數據庫連接池要用到Druid、MySQL橋接器要用到mysql-connector,因此要maven倉庫(點我去倉庫)中找到搜索這些pom加進去。注意,mybatis要用mybatis-spring-boot-starter。
1
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
2
<
dependency
>
3
<
groupId
>
mysql
</
groupId
>
4
<
artifactId
>
mysql-connector-java
</
artifactId
>
5
<
version
>
5.1.6
</
version
>
6
</
dependency
>
7
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
8
<
dependency
>
9
<
groupId
>
com.alibaba
</
groupId
>
10
<
artifactId
>
druid
</
artifactId
>
11
<
version
>
1.1.10
</
version
>
12
</
dependency
>
13
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
14
<
dependency
>
15
<
groupId
>
org.mybatis.spring.boot
</
groupId
>
16
<
artifactId
>
mybatis-spring-boot-starter
</
artifactId
>
17
<
version
>
1.3.2
</
version
>
18
</
dependency
>
把上面這些pom放到pom.xml的dependencies中
Reimport過程中再idea底部會有進度條顯示,等進度條消失,在觀察pom.xml,紅色已經消失,說明依賴已經裝備完成。
配置數據源
接下來就是要多springboot項目做一個全局配置,默認會在src->main->resource目錄下生產空白文件application.properties,作者喜歡用yml因此直接改名成yml即可。
首先是數據源的配置,下面是一份數據源的配置,每個參數的解釋都寫了注釋,因此讀者可以直接復制一下內容進去,只需要改一下url、username、password
1
spring:
2
#profiles: dev
3
messages:
4
basename: i18n/Messages,i18n/Pages
5
datasource:
6
type: com.alibaba.druid.pool.DruidDataSource # 配置當前要使用的數據源的操作類型
7
driver-class-name: org.gjt.mm.mysql.Driver # 配置MySQL的驅動程序類
8
url: jdbc:mysql://localhost:3306/wkt_stat # 數據庫連接地址
9
username: root # 數據庫用戶名
10
password: root # 數據庫連接密碼
11
dbcp2: # 進行數據庫連接池的配置
12
min-idle: 5 # 數據庫連接池的最小維持連接數
13
initial-size: 5 # 初始化提供的連接數
14
max-total: 5 # 最大的連接數
15
max-wait-millis: 200 # 等待連接獲取的最大超時時間
繼續在application.yml中設置mybatis,mybatis的配置也簡單,
主要是為了設置mybatis的配置文件已經mapper文件所在。
首先在resource目錄下創建一個mybatis-config.xml文件,文件內容為:
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE configuration
3
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4
"http://mybatis.org/dtd/mybatis-3-config.dtd">
5
<
configuration
>
6
<
mappers
>
7
</
mappers
>
8
</
configuration
>
在main包中的根目錄下創建一個存放mapper實體的資源文件,在resource文件下創建一個文件夾mapper用來存放mapper的xml文件。
配置好資源文件路徑之后,就可以在application.yml中加入mybatis的配置了,如下是一個mybatis的配置內容:
1
#mybatis的mapper配置文件
2
mybatis:
3
config-location: classpath:mybatis-config.xml # mybatis配置文件所在路徑
4
#mapper-locations: classpath:mapper/*.xml # 所有的mapper映射文件
5
type-aliases-package: com.becl.dao.mapper # 定義所有操作類的別名所在包
6
debug: true
最終application.yml的內容如下圖:
此時需要有一個數據庫表來做測試,我們在數據庫創建一個表,并且插入一條數據:
1
CREATE TABLE Memeber (
2
`id` int(11) NOT NULL AUTO_INCREMENT ,
3
`name` varchar(255) NULL ,
4
PRIMARY KEY (`id`)
5
);
6
7
INSERT INTO memeber VALUES(1,"jas")
在mapper包中創建Memeber的mapper接口:
1
public
interface
MemeberMapper
{
2
/**
3
* 根據ID獲取記錄
4
*
@param
id
5
*
@return
6
*/
7
public
Map
findObjectById
(Integer id)
;
8
}
在resource中的mapper文件夾創建memberMapper.xml,并且在mapper中增加一個findObjectById的SQL查詢語句。
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE mapper
3
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
<!--映射文件配置,namespace指向接口-->
6
<
mapper
namespace
=
"com.example.mybatisanddruid.mapper.MemeberMapper"
>
7
#根據ID查詢記錄
8
<
select
id
=
"findObjectById"
parameterType
=
"Integer"
resultType
=
"Map"
>
9
select * from memeber where id = #{value}
10
</
select
>
11
</
mapper
>
走到這一步,基本上已經是大功告成了,我們來寫一個測試類試試,在根目錄創建一個controller的包,在包中創建一個Java類,如下:
1
@Controller
2
@RequestMapping
(
"/test"
)
3
public
class
TestController
{
4
@Resource
5
private
MemeberMapper memeberMapper=
null
;
6
7
@RequestMapping
(
"/one"
)
8
@ResponseBody
9
public
Map
testdb
()
{
10
return
memeberMapper.findObjectById(
1
);
11
}
12
}
創建完之后,我們運行項目,找到啟動類MybatisAndDruidApplication右鍵run,發現報錯,提示沒有掃描到mapper包,為什么呢?那是mapper需要手動在啟動類中加入:
1
@MapperScan
(
"com.example.mybatisanddruid.mapper"
)
這樣啟動類就變成:
1
@SpringBootApplication
2
@MapperScan
(
"com.example.mybatisanddruid.mapper"
)
3
public
class
MybatisAndDruidApplication
{
4
5
public
static
void
main
(String[] args)
{
6
SpringApplication.run(MybatisAndDruidApplication.class, args);
7
}
8
}
再次運行,沒有報錯,在瀏覽器輸入:http://localhost:8888/test/one
輸出了ID為1的記錄:
1
{"name":"jas","id":1}
由此可見,springboot-mybatis已經搭建成功,此時有人會問,那Druid呢?
設置Druid監控配置
druid的使用需要做一些配置,現在我們來在根目錄下創建一個包config,在config包中間創建一個叫做DruidConfig.java,并且在里寫入下面的內容:
1
@Configuration
2
public
class
DruidConfig
{
3
@Bean
4
public
ServletRegistrationBean
druidServlet
()
{
// 主要實現WEB監控的配置處理
5
ServletRegistrationBean servletRegistrationBean =
new
ServletRegistrationBean(
new
StatViewServlet(),
"/druid/*"
);
// 進行druid監控的配置處理操作
6
servletRegistrationBean.addInitParameter(
"allow"
,
7
"127.0.0.1,192.168.1.159"
);
// 白名單
8
servletRegistrationBean.addInitParameter(
"deny"
,
"192.168.1.200"
);
// 黑名單
9
servletRegistrationBean.addInitParameter(
"loginUsername"
,
"stat"
);
// 用戶名
10
servletRegistrationBean.addInitParameter(
"loginPassword"
,
"Wkt_sTat_1031"
);
// 密碼
11
servletRegistrationBean.addInitParameter(
"resetEnable"
,
"false"
);
// 是否可以重置數據源
12
return
servletRegistrationBean ;
13
}
14
@Bean
15
public
FilterRegistrationBean
filterRegistrationBean
()
{
16
FilterRegistrationBean filterRegistrationBean =
new
FilterRegistrationBean() ;
17
filterRegistrationBean.setFilter(
new
WebStatFilter());
18
19
filterRegistrationBean.addUrlPatterns(
"/*"
);
// 所有請求進行監控處理
20
filterRegistrationBean.addInitParameter(
"exclusions"
,
"*.js,*.gif,*.jpg,*.css,/druid/*"
);
21
return
filterRegistrationBean ;
22
}
23
@Bean
24
@ConfigurationProperties
(prefix =
"spring.datasource"
)
25
public
DataSource
druidDataSource
()
{
26
return
new
DruidDataSource();
27
}
28
29
}
配置中的內容就不一一細講, 有興趣的直接百度一下druid就出來很多答案了,現在重新運行一下項目,運行成功之后,在瀏覽器中輸入:http://localhost:8888/druid
這時候,druid監控平臺就出現了
此時我們輸入在DruidConfig中設置的loginUsername和loginPassword點擊登錄,一個完整的druid監控管理平臺就呈現在我們啦~
Druid非常強大,在這里你可以查看SQL的執行情況、慢SQL、API請求情況等,根據這些可以做一些性能的調優,至于詳細的用法,就靠大家自行學習啦~
如果有老鐵需要項目源碼,請加我:sisi-ceo。
覺得本文對你有幫助?請分享給更多人
關注「編程無界」,提升裝逼技能
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。