SpringBoot入門 簡單搭建和使用

前言

差很少兩年前,那個時候我準備要作畢業設計了,才第一次知道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

對Maven有了解的朋友能夠跳過這部分了。springboot

Maven的做用

Maven的做用是,讓用戶在項目中的pom.xml寫下某個jar包的名字(又叫依賴),項目就能夠本身聯網去找對應的jar包,省去了開發者一個一個去找jar下載的功夫,所以使用必定要聯網。包括SpringBoot,說到底也是一堆jar包的集合,所以咱們能夠新建一個Maven項目來繼承SpringBoot項目,這樣咱們的項目就是SpingBoot框架了,接下來的作法即是這樣。mybatis

Maven的安裝

通常而言,新的eclipse都已經集成了maven,若是沒有,網上有不少Maven安裝的教程。

新建Maven項目

在Package Explorer下右鍵,選New→other;

在彈窗中找到Maven文件夾,點開,選擇裏面的Maven Project,點擊next

建立一個簡單的Maven項目

SpringBoot在這裏是做爲父項目被咱們的項目繼承;

建立好的項目目錄以下:

添加Maven依賴

打開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!";
	}
}

編寫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包平級的包下,不然項目會正常啓動,但頁面卻訪問不到。

頁面訪問不到就會這樣
錯誤現象

SpringBoot的用法

上面只是作了簡單的訪問測試,要做爲一個完整的web項目,咱們須要
1.解析用戶發出的請求
2.拿到數據庫中的數據
3.進行數據的運算
4.將數據呈如今用戶面前。

那麼按照這個思路行動,除了SpringBoot的啓動類(上文中的App)咱們會在src/main/java下建下面幾個包

  • dao:又叫mapper,咱們會用mybatis在此層進行與數據庫的交互
  • service:處理數據的邏輯和校驗,負責dao和controller這兩層的鏈接和他們之間的數據處理,通常來講咱們有什麼數據的運算會寫在這裏,有的會建一個service.impl包,service包下寫接口,service.impl下對應的類來是實現接口。
  • controller:又叫web,視圖處理和接口暴露的地方,能夠看到上文中是在controller中根據用戶訪問的鏈接,而後跳轉到對應的頁面將對應的數據顯示給客戶看
  • pojo:也叫do,java中的對象寫在這個包裏,主要是和數據庫的表對應,一般來講是要和數據庫表中的字段徹底一致的。

在src/main/resources下會創建一個application.properties,是SpringBoot的全局配置文件,所以文件名不要寫錯,後續有什麼配置都會在裏面寫。

若是看不懂,往下跟着作一遍就懂了。但建議下面的作了一遍以後,再回來看看這部分。

整合MyBatis-Plus

介紹

使用MyBatis-Plus能夠無須定義sql語句就可以完成數據庫的增刪改查操做。可是它不是萬能,有些時候仍是須要去定義的sql語句。
MyBatis-Plus官網

添加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包

要在pojo包中寫一個User類,字段與數據庫徹底一致,生成各自的setter/getter方法

dao層

在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層

在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);
	}

}
  • @Service是告訴SpringBoot這是一個service層的實現類;
  • 寫上@Autowired註解後SpringBoot會自動根據類型去注入對象,這就是Spring中IOC(控制反轉的體現),即你不用本身去寫private UserDao userDao = new UserDao();
  • 能夠看到service層中維護着一個對應的Dao層對象,當須要什麼數據直接用Dao層對象去數據庫拿便可。

controller層

在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);
	}
}
  • 一樣能夠看到controller層中維護着一個對應的service層對象,當須要什麼數據直接用service層對象去拿便可。

啓動項目後訪問

總結

教程到此結束,以後的使用基本照貓畫虎,都差很少的,須要jar包去pom.xml下寫對應的依賴,須要改什麼配置就去application.properties裏改,先百度一下寫法,複製粘貼便可。

搭建過程只需作一次,以後的使用,除了添加jar包和改配置,多數狀況下都是controller層調用service層,service層調用dao層,dao層鏈接數據庫,而後逐層返回。這是最基本的使用。

相關文章
相關標籤/搜索