本文旨在用最通俗的語言講述最枯燥的基本知識css
最近身邊的程序員掀起了學習springboot的熱潮,說什麼學會了springboot在大街上就能夠橫着走、什麼有了springboot媽媽不再擔憂個人編程了、什麼BAT都喜歡的框架…聽得做者那個心癢癢的,因而找了個時間,下載了個idea來玩一波springboot,對了…用springboot最好用idea,若是你還在用eclipse,刪了吧。java
在這裏解釋一下爲何是springboot+mybatis+druid,是由於做者認爲但凡任何一個有靈魂的項目,都少不了數據庫,做者不喜歡用JPA那種混SQL的語法,所以選了mybatis,而Druid是阿里系(真香~)的一種數據庫鏈接池框架,在上一個項目做者用的屢試不爽,所以打算繼續用,爲啥屢試不爽?看文末吧。mysql
文章提綱:程序員
- 建立springboot工程
- 配置pom.xml
- 配置數據源
- 設置mybatis
- hello world
- 設置Druid監控配置
只要你有idea,建立一個springboot工程,就跟捏死一個螞蟻同樣簡單,由於idea裏深度集成了對springboot項目的支持,你直接不停的next到最後,它就會幫你建立出一個springboot工程。spring
首先打開idea->Create New project->選擇項目類型:這裏選擇spring initializr,而後next。
sql
建立項目,填寫項目名稱,注意:不要能駝峯寫法,能夠用中橫線,填寫完畢後繼續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
1spring:
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文件所在。
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配置文件
2mybatis:
3 config-location: classpath:mybatis-config.xml # mybatis配置文件所在路徑
4 #mapper-locations: classpath:mapper/*.xml # 全部的mapper映射文件
5 type-aliases-package: com.becl.dao.mapper # 定義全部操做類的別名所在包
6debug: true
複製代碼
最終application.yml的內容以下圖:
1CREATE TABLE Memeber (
2`id` int(11) NOT NULL AUTO_INCREMENT ,
3`name` varchar(255) NULL ,
4PRIMARY KEY (`id`)
5);
6
7INSERT INTO memeber VALUES(1,"jas")
複製代碼
1public interface MemeberMapper {
2 /**
3 * 根據ID獲取記錄
4 * @param id
5 * @return
6 */
7 public Map findObjectById(Integer id);
8}
複製代碼
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")
3public 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")
3public 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
2public 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。
以爲本文對你有幫助?請分享給更多人
關注「編程無界」,提高裝逼技能![]()