SpringBoot專案建立步驟
1. 建立SpringBoot工程
(1) File → New → Project → Spring Initilizr
(2) Name:MySpringBoot
(3) Group: com.baidu
(4) java: 8
(5) Next
(6) Finish
(7) This Window
(8) 配置maven環境:
① File → Settings → Build,Execution,Deployment → Build Tools → Maven
② Maven Home Path:Maven檔案路徑
③ User setting files: Maven檔案路徑 → conf → logging → setting檔案
④ Local repository:自建路徑(D:\Java\repository)
⑤ OK
2. 建立Maven工程
(1) MySpringBoot下右鍵 → New → moudle → Maven
(2) Next
(3) Name:springboot_demo4
(4) Groupid :com.baidu
(5) Finish
3. 編輯Spring MVC
目錄結構如下:
操作步驟:
(1) 編輯pom.xml檔案
<?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.jt</groupId> 8 <artifactId>springboot_demo3</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <!--1.parent標籤--> 12 <!--集中定義版本號--> 13 <parent> 14 <groupId>org.springframework.boot</groupId> 15 <artifactId>spring-boot-starter-parent</artifactId> 16 <version>2.5.1</version> 17 <relativePath/> <!-- lookup parent from repository --> 18 </parent> 19 20 21 <!--2.新增依賴項--> 22 <!--依賴: 專案中需要新增什麼功能,則依賴什麼jar包.--> 23 <dependencies> 24 <!--引入SpringMVC功能--> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-web</artifactId> 28 </dependency> 29 <!--SpringBoot的測試功能--> 30 <dependency> 31 <groupId>org.springframework.boot</groupId> 32 <artifactId>spring-boot-starter-test</artifactId> 33 <scope>test</scope> 34 </dependency> 35 36 <!--SpringBoot核心機制: "開箱即用" 37 只需匯入特定的jar包檔案 則可以直接使用其中的功能 38 根本原因: SpringBoot是對框架的簡化,內部進行了擴充套件,無需程式設計師操作. 39 --> 40 <!--支援熱部署 --> 41 <dependency> 42 <groupId>org.springframework.boot</groupId> 43 <artifactId>spring-boot-devtools</artifactId> 44 </dependency> 45 46 <!--引入外掛lombok 自動的set/get/構造方法外掛 --> 47 <dependency> 48 <groupId>org.projectlombok</groupId> 49 <artifactId>lombok</artifactId> 50 </dependency> 51 52 <!--引入資料庫驅動 --> 53 <dependency> 54 <groupId>mysql</groupId> 55 <artifactId>mysql-connector-java</artifactId> 56 <scope>runtime</scope> 57 </dependency> 58 59 <!--springBoot資料庫連線 --> 60 <dependency> 61 <groupId>org.springframework.boot</groupId> 62 <artifactId>spring-boot-starter-jdbc</artifactId> 63 </dependency> 64 65 <!--spring整合mybatis-plus MP中包含了mybatis的包所以將原來的包刪除 --> 66 <dependency> 67 <groupId>com.baomidou</groupId> 68 <artifactId>mybatis-plus-boot-starter</artifactId> 69 <version>3.4.3</version> 70 </dependency> 71 72 </dependencies> 73 74 75 <!--3.新增build標籤--> 76 <!--該外掛是SpringBoot專案打包時必須新增的. 77 如果沒有該外掛 則導致jar包不能執行 78 --> 79 <build> 80 <plugins> 81 <plugin> 82 <groupId>org.springframework.boot</groupId> 83 <artifactId>spring-boot-maven-plugin</artifactId> 84 <version>2.5.1</version> 85 </plugin> 86 </plugins> 87 </build> 88 </project>
(2) 編輯主啟動類
① @SpringBootApplication
② @MapperScan(“com.jt.mapper”) --> 包掃描
1 package com.jt; 2 3 import org.mybatis.spring.annotation.MapperScan; 4 import org.springframework.boot.SpringApplication; 5 import org.springframework.boot.autoconfigure.SpringBootApplication; 6 7 @SpringBootApplication 8 @MapperScan("com.jt.mapper") 9 public class RunApp { 10 public static void main(String[] args) { 11 SpringApplication.run(RunApp.class, args); 12 } 13 }
(3) 編輯pojo包下的User類
① @Data --> 自動生成setter/getter/to string/構造方法等
② @Accessors(chain = true) --> 啟動鏈式載入(重寫set方法)
③ @TableName(“demo_user”) --> 使用MP, 類名與表名對映
1 package com.jt.pojo; 2 3 import com.baomidou.mybatisplus.annotation.TableName; 4 import lombok.Data; 5 import lombok.experimental.Accessors; 6 7 import java.io.Serializable; 8 9 @Data 10 @Accessors(chain = true) 11 @TableName("demo_user") 12 //規定:POJO實體一般都需要實現序列號介面 13 public class User implements Serializable { 14 private Integer id; 15 private String name; 16 private Integer age; 17 private String sex; 18 }
(4) 編輯mapper層下的UserMapper介面
1 package com.jt.mapper; 2 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 import com.jt.pojo.User; 5 import org.apache.ibatis.annotations.Mapper; 6 7 //@Mapper 每個介面都要加一次,麻煩,所以提取到主啟動類RunApp上加@MapperScan("com.jt.Mapper")註解 8 public interface UserMapper extends BaseMapper<User> { 9 10 }
(5) 編輯resources--mappers包下的UserMapper.xml對映檔案
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.jt.mapper.UserMapper"> 7 8 <!-- <select id="findAll" resultType="User"> 9 select * from demo_user 10 </select> 11 --> 12 </mapper>
(6) 編輯resources包下的application.yml核心配置檔案
server: port: 8090 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true username: root #如果密碼以數字0開頭,則使用""號包裹 "0123456" password: root #SpringBoot整合MybatisPlus mybatis-plus: #設定別名包 type-aliases-package: com.jt.pojo #載入對映檔案 mapper-locations: classpath:/mappers/*.xml #開啟駝峰對映 configuration: map-underscore-to-camel-case: true #列印Sql語句 logging: level: #指定包路徑,日誌輸出 com.jt.mapper: debug
(7) 編輯service層下的UserService介面
1 package com.jt.service; 2 3 import com.jt.pojo.User; 4 5 import java.util.List; 6 7 public interface UserService { 8 List<User> findAll(); 9 }
(8) 編輯Service層下的UserServiceImpl實現類
① @Service
② @AutoWired --> 依賴注入
③ @Override --> 重寫介面方法
1 package com.jt.service; 2 3 import com.jt.mapper.UserMapper; 4 import com.jt.pojo.User; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Service; 7 8 import java.util.List; 9 10 @Service 11 public class UserServiceImpl implements UserService { 12 @Autowired 13 public UserMapper userMapper; 14 15 @Override 16 public List<User> findAll() { 17 return userMapper.selectList(null); 18 } 19 }
(9) 編輯controller層下的UserController類
① @RestController
② @CrossOrigin --> 解決跨域問題
③ AutoWired --> 依賴注入
④ @RequestMapping(“findAll”)
1 package com.jt.controller; 2 3 import com.jt.pojo.User; 4 import com.jt.service.UserService; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.web.bind.annotation.CrossOrigin; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.RestController; 9 10 import java.util.List; 11 12 @CrossOrigin 13 @RestController 14 public class UserController { 15 @Autowired 16 private UserService userService; 17 18 @RequestMapping("findAll") 19 public List<User> find() { 20 return userService.findAll(); 21 } 22 }