SpringBoot--基礎
SpringBoot--基礎
- SpringBoot的設計目的是用來簡化Spring應用的初始搭建以及開發過程
idea創建springboot入門步驟(需要idea聯網)
-
創建一個空項目
-
之后再項目構建中添加springboot相關配置
![]()


本處的springboot版本為2.7.14,如果maven報錯可以自己修改一下版本,最新的3.0版本以上需要jdk17以上
-
編寫控制類
//Rest模式 @RestController @RequestMapping("/book") public class BookController { // 限制為get請求 @GetMapping public String getById(){ System.out.println("springboot is running"); return "springboot is running"; } } -
運行
一些服務器信息

結果:

除了idea還可以通過官網創建或者阿里云創建:
另外在idea選擇阿里云的網頁創建:

springboot和spring程序的對比

- Spring程序缺點:
- 依賴設置繁瑣
- 配置繁瑣
- SpringBoot程序優點
- 起步依賴(簡化依賴配置)
- 自動配置(簡化常用工程配置)
- 輔助功能(內置服務器,......)
springboot入門解析
parent--管理坐標版本

管理坐標版本方式

在pom.xml可以找到parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
starter--定義項目依賴坐標
即:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
starter就是一個包含了若干個坐標的依賴集,而一個starter中也可以包括starter,嵌套多層
starter定義當前項目使用的所有依賴坐標,以達到減少依賴配置的目的,達到簡化配置的目的
總結:實際開發中我們寫坐標時,只需要寫
引導類
引導類就是我們創建springboot自帶的那個類

內嵌Tomcat
我們可以在starter里面找到tomcat相關坐標:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.5.3</version>
<scope>compile</scope>
</dependency>
springboot內置服務器

把tomcat替換為jetty服務器:

SpringBoot的基礎配置
找到resources下的application.properties,這就是springboot的配置文件,通過鍵值對的方式進行配置
一些配置展示:
# 服務的端口配置
server.port=80
#修改banner--啟動springboot項目時的圖案
##啟動時圖案出現方式--本處為直接關閉
spring.main.banner-mode=off
##指定banner的圖片
spring.banner.image.location=xx.png
#控制日志
#日志級別默認為info--本處為調試級別
logging.level.root=debug
#出錯才顯示日志
#logging.level.root=error
小知識:80端口是瀏覽網頁端口,不用在網址中輸入80,例如localhost:80/aaa直接寫成localhost/aaa
其他配置自行去官網查閱
Common Application Properties (spring.io)
另外springboot提供了多種屬性的配置方式:上面的properties只是其中的一種配置方式:

現在的主流是yml格式
yaml語法規則

語法規則:

字面值:

數組:

變量引用:
country: sichuan
likes: ${country}\aaa
#用引號包裹的字符串轉義字符會生效
likes: "${country}\temp \t1 \t2"
讀取yml的數據
// 讀取yaml數據中的單一數據
@Value("${country}")
private String country1;
//多級數據
@Value("${country.china}")
private String country1;
// 讀取yaml數據中的數組
@Value("${likes[0]}")
private String country1;
//使用自動裝配將所有數據封裝到該對象中
@Autowired
private Environment env;
//調用方法
env.getProperty("country")
裝配指定數據:
#配置文件中
datasource:
url: xxx
driver: com.mysql.jdbc.Driver
username: root
password: 123456
//datasource類
//實例化bean
@Component
//指定加載的數據
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {
private String driver;
private String url;
private String username;
private String password;
@Override
public String toString() {
return "MyDataSource{" +
"driver='" + driver + '\'' +
", url='" + url + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
//使用
// 自動裝配
@Autowired
private MyDataSource myDataSource;
其他注意事項
指定springboot的配置文件:

復制模塊:

SpringBoot整合第三方技術
整合JUnit
SpringBoot是默認導入了Junit的,在對應的starter中
進行測試的步驟:
-
找到test目錄下的該類
![]()
-
注入要測試的對象
-
執行測試對象的方法
@SpringBootTest class Springboot0101QuickstartApplicationTests { // 注入測試對象 @Autowired private BookController bookController; @Test void contextLoads() { // 執行對象相關方法 bookController.getById(); } }
之后運行即可,springboot測試的關鍵就是@SpringBootTest注
但是如果想把測試類換一個位置就需要改一下注解

至于原因:找不到對應包下的引導類設置
整合MyBatis
首先,創建項目的時候勾上這兩個,當然你也可以自己手動添加相關坐標

配置相關信息:
# 配置相關信息
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbcstudy
username: root
password: 123456
之后就按照之前mybait學的一樣寫dao層等
類
public class Book {
private int id;
private String username;
private int password;
@Override
public String toString() {
return "Book{" +
"id=" + id +
", username='" + username + '\'' +
", password=" + password +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
}
dao:
@Repository
@Mapper
public interface BookDao {
@Select("select * from user where id = #{id}")
public Book getById(int id);
}
測試:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.getById(1));
}
}
如果時區錯誤或mysql版本過高:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT
username: root
password: 123456
mybatis-plus:
global-config:
db-config:
# 設置id為自增
id-type: auto
整合MyBatis-Plus
類似MyBatis,但是也有一些不同:
- 導入的坐標不同
- 數據層實現簡化
springboot沒有收錄mybatis-plus

創建方法(第一種--快速):
-
使用阿里云的創建:
![]()
-
選擇mybatis-plus:
![]()
創建方法(第二種--正統):
-
選擇默認的創建方法:
![]()
-
在pom文件手動導入mybaits-plus的坐標:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency>
整合使用:
在之前寫的mybatis整個的基礎上:
@Repository
@Mapper
public interface BookDao extends BaseMapper<Book>{
}
//下面改成上面
//public interface BookDao {
// @Select("select * from user where id = #{id}")
// public Book getById(int id);
//}
測試類改為:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
//selectById是 BaseMapper的方法,具體自行查閱api
System.out.println(bookDao.selectById(2));
}
}
另外,映射數據庫的實體類名字改成和表名一樣
如果表名叫tb_book,而類叫book,可以在配置文件中為其添加前綴
#設置mybatis-plus相關配置
mybatis-plus:
global-config:
db-config:
table-prefix: tb_
整合Druid
導入druid的starter坐標:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
配置方法一:
在springboot的配置文件中:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
配置方法二:(推薦)
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT
username: root
password: 123456





浙公網安備 33010602011771號