差很少兩年前,那個時候我準備要作畢業設計了,才第一次知道java有框架這種東西,在網上找了好多SSM的教程,那會兒真的是Spring+SpringMVC+MyBatis搭建的,印象極深的是還要寫一堆配置文件,也不知道爲何寫,報錯了也不知道哪裏錯,根本不像如今有SpringBoot這麼簡單。java
後來還好在博客園上看到了一位前輩的SSM框架搭建過程,雖然也是一堆問題,但前輩仍是頗有耐心地解答,甚至加qq幫我看項目錯在哪裏,非常熱心。mysql
而今兩年過去,我本身也成了能寫教程的人了,但願這個教程能幫到你吧。web
這個教程的目的是教會你初步使用SpringBoot。spring
若是你是想系統的學習SpringBoot,那麼這篇文章可能幫不了你太多。sql
若是你是如今立刻要用到,那麼能夠看下這篇文章,會講最基本的搭建和使用方法,每一步都會講爲何,力求用最少的步驟讓你懂搭建和使用SpringBoot。數據庫
項目是使用Maven和eclipse搭建的。瀏覽器
網上相關的教程可能是使用idea的,但使用eclipse的其實也很多,本身更偏心eclipse,因此這裏會使用eclipse,搭建思路和idea是同樣的,差不了多少。tomcat
對Maven有了解的朋友能夠跳過這部分了。springboot
Maven的做用是,讓用戶在項目中的pom.xml寫下某個jar包的名字(又叫依賴),項目就能夠本身聯網去找對應的jar包,省去了開發者一個一個去找jar下載的功夫,所以使用必定要聯網。包括SpringBoot,說到底也是一堆jar包的集合,所以咱們能夠新建一個Maven項目來繼承SpringBoot項目,這樣咱們的項目就是SpingBoot框架了,接下來的作法即是這樣。mybatis
通常而言,新的eclipse都已經集成了maven,若是沒有,網上有不少Maven安裝的教程。
在Package Explorer下右鍵,選New→other;
在彈窗中找到Maven文件夾,點開,選擇裏面的Maven Project,點擊next
建立一個簡單的Maven項目
SpringBoot在這裏是做爲父項目被咱們的項目繼承;
建立好的項目目錄以下:
打開pom.xml,添加以下依賴(這個依賴是SpringBoot的啓動器,tomcat內置在裏面),這裏寫下而且保存以後,eclipse便會本身聯網去找spring-boot-starter-web這個jar包下載,並放在下圖的Maven Dependenices文件夾中,以後若是要添加什麼jar包,能夠百度這個jar包的依賴,在dependencies這個標籤內寫下便可。
<dependencies> <!--快速整合springmvc和tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
添加前
添加後
項目到這裏搭好了第一步,能夠進行最低限度的訪問,接下來寫點代碼來訪問
貼一下代碼
package com.TandK.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class IndexController { @RequestMapping("/hello") @ResponseBody public String sayHello(){ return "hello, SpringBoot!"; } }
package com.TandK; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
直接運行該啓動類
控制檯正常打印無報錯,打開瀏覽器訪問,顯示剛剛控制類方法裏寫的數據。注意SpringBoot默認端口是8080(不過這個也能夠改的,在SpringBoot配置文件裏改,這個後續會說)。
啓動類即App能夠和Controller類放在同一級,也能夠放在Contoller類上一層,但不能放在和Controller包平級的包下,不然項目會正常啓動,但頁面卻訪問不到。
頁面訪問不到就會這樣
上面只是作了簡單的訪問測試,要做爲一個完整的web項目,咱們須要
1.解析用戶發出的請求
2.拿到數據庫中的數據
3.進行數據的運算
4.將數據呈如今用戶面前。
那麼按照這個思路行動,除了SpringBoot的啓動類(上文中的App)咱們會在src/main/java下建下面幾個包
在src/main/resources下會創建一個application.properties,是SpringBoot的全局配置文件,所以文件名不要寫錯,後續有什麼配置都會在裏面寫。
若是看不懂,往下跟着作一遍就懂了。但建議下面的作了一遍以後,再回來看看這部分。
使用MyBatis-Plus能夠無須定義sql語句就可以完成數據庫的增刪改查操做。可是它不是萬能,有些時候仍是須要去定義的sql語句。
MyBatis-Plus官網
<!--整合mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> <!--mysql驅動--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <!--alibaba的數據鏈接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency>
注意,這裏的驅動(即mysql-connector-java)要看對應的mysql版本,個人mysql是8以上的,因此mysql驅動要用8.0.11的。
若是你的mysql是5.X的,建議去找5.X的mysql驅動。我以前用的mysql驅動是5.X的,就會報錯,所以這塊要注意。
在application.properties中配置數據源DataSource,這裏的配置根據本身的實際狀況寫
# springboot數據源初始化 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/你的數據庫名?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=你的數據庫用戶名 spring.datasource.password=你的數據庫密碼
好比我在ssm的數據庫中有一個user表,數據以下
要在pojo包中寫一個User類,字段與數據庫徹底一致,生成各自的setter/getter方法
在dao包下新建一個UserDao的接口,專門用來數據庫中的User表進行增刪改查,要繼承BaseMapper。
package com.TandK.dao; import com.TandK.pojo.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface UserDao extends BaseMapper<User>{ }
這裏記得要回到App(SpringBoot啓動類)中添加一個註解,告訴SpringBoot,Dao層的包名。
在service包下定義一個IUserService的接口,而後在裏面定義一個根據用戶id查詢用戶信息的方法。
package com.TandK.service; import com.TandK.pojo.User; public interface IUserService { /** * 根據id查詢用戶信息 * @param id * @return */ public User getUser(Integer id); }
在service.impl包下定義對應的實現類UserServiceImpl。
package com.TandK.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.TandK.dao.UserDao; import com.TandK.pojo.User; import com.TandK.service.IUserService; @Service public class UserServiceImpl implements IUserService{ @Autowired private UserDao userDao; @Override public User getUser(Integer id) { // TODO Auto-generated method stub return userDao.selectById(id); } }
private UserDao userDao = new UserDao();
了在Controller包下新建UserController類
package com.TandK.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.TandK.pojo.User; import com.TandK.service.IUserService; @Controller public class UserController { @Autowired private IUserService userServiceImpl; @RequestMapping("/getUser") @ResponseBody public User getUser(Integer id){ return userServiceImpl.getUser(id); } }
啓動項目後訪問
教程到此結束,以後的使用基本照貓畫虎,都差很少的,須要jar包去pom.xml下寫對應的依賴,須要改什麼配置就去application.properties裏改,先百度一下寫法,複製粘貼便可。
搭建過程只需作一次,以後的使用,除了添加jar包和改配置,多數狀況下都是controller層調用service層,service層調用dao層,dao層鏈接數據庫,而後逐層返回。這是最基本的使用。