SpringBoot
什么是SpringBoot
快速啟動(dòng)一個(gè)生產(chǎn)級(jí)的項(xiàng)目踊餐,簡(jiǎn)化開(kāi)發(fā)流程
回顧SSM
- 復(fù)雜伏穆、大量的配置文件
- 大量的依賴(lài),沒(méi)有人管理(容易造成依賴(lài)沖突疯汁,高低版本不兼容)
SpringBoot能解決上述問(wèn)題
-
只需要一個(gè)配置文件疯淫,配置文件的名稱(chēng)必須是 application-.properties或者是 application-.yml這種形式命名
application-dev.properties
application-pro.properties
jdbc.driverClassName = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/java2demo?useUnicode=true&characterEncoding=utf8 jdbc.username = root jdbc.password = root
但是SpringBoot更推薦使用.yml文件去作為配置文件
application-dev.yml
application-pro.yml
application-dev.yaml
application-pro.yaml
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/java2demo?useUnicode=true&characterEncoding=utf8
username: root
password: root
- SpringBoot項(xiàng)目有一個(gè)“依賴(lài)”的父工程地来,可以引入其他啟動(dòng)器依賴(lài)完成依賴(lài)管理
創(chuàng)建SpringBoot項(xiàng)目
- 1.創(chuàng)建maven項(xiàng)目有
-
2.在pom.xml中引入父工程
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.neuedu</groupId> <artifactId>springbootdemo1</artifactId> <version>1.0-SNAPSHOT</version> <!-- 引入父工程,當(dāng)前最新版本2.1.5 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> </parent> </project>
-
3.web項(xiàng)目熙掺,需要引入web啟動(dòng)器依賴(lài)未斑,版本由父工程管理
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
如何啟動(dòng)SpringBoot項(xiàng)目
package com.neuedu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
SpringApplication.run(BootApplication.class);
}
}
在application.yml中指定啟動(dòng)端口(默認(rèn)8080)
# 指定啟動(dòng)端口
server:
port: 8888
啟動(dòng)啟動(dòng)類(lèi)
這個(gè)啟動(dòng)類(lèi)要想生效,它的路徑必須在所有子包的父級(jí)路徑中
SpringBoot中有自動(dòng)掃描币绩,是以啟動(dòng)類(lèi)@SpringBootApplication
為起點(diǎn)向下掃描所有子包蜡秽,所以直接就可以寫(xiě)web層,愉快的開(kāi)發(fā)了
package com.neuedu.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello,StringBoot!";
}
}
簡(jiǎn)單測(cè)試类浪,效果完美载城!
整合數(shù)據(jù)庫(kù)連接池肌似,mybatis费就,和事務(wù)
引入mybatis啟動(dòng)器和mysql依賴(lài)
<dependencies>
<!--web啟動(dòng)器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!-- mybatis啟動(dòng)器 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
application.yml
# 數(shù)據(jù)庫(kù)連接參數(shù)
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/java2demo?useUnicode=true&characterEncoding=utf8
username: root
password: root
# 數(shù)據(jù)庫(kù)連接池
hikari:
maximum-pool-size: 30 # 最大連接數(shù)
minimum-idle: 10 # 最小連接數(shù)
idle-timeout: 60000 # 超時(shí)時(shí)間
# 指定mapper文件路徑 , 配置包中類(lèi)別名
mybatis:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: com.neuedu.pojo
# 指定日志打印級(jí)別,輸出SQL語(yǔ)句
logging:
level:
com.neuedu.mapper: debug
需要注意的是川队,mapper層要想被正確裝配力细,需要在mapper層接口上添加@Mapper
注解或者在啟動(dòng)上添加@MapperScan
注解完成掃描
@SpringBootApplication
@MapperScan("com.neuedu.mapper") // 指定mapper包
public class BootApplication {
public static void main(String[] args) {
SpringApplication.run(BootApplication.class);
}
}