一、常用的starter
二、開發篇
1.繼承parent
使用springboot時,都要繼承一個parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
但通常情況下,我們會在項目中定義一個自己的 parent 項目,這種情況下,當我們在子工程中指定我們自己的parent項目,就不能再指定上面官方的spring-boot-starter-parent了。
那麼,該如何來做呢?其實,在spring的官網也給出瞭解決方法:
我們在父工程加入以下代碼。在子工程中則直接指定父工程即可。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
參考:Spring Boot 不使用默認的 parent,改用自己的項目的 parent
2.maven環境隔離
#激活application-dev配置文件
spring.profiles.active=dev
3.日誌
spring boot 支持Java Util Loggin、Log4J、Log4J2和LogBack作爲日誌框架,無論使用哪種日誌框架,spring boot已爲當前使用日誌框架的控制檯輸出及文件輸出做好了配置。
默認情況下,spring boot 使用 Logback作爲日誌框架
4.與swagger2整合
單獨引入jar方式
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
springboot引入的方式
可以參考:RESTful API開發神器swagger與spring-boot的快速整合使用
<dependency>
<groupId>com.gitee.reger</groupId>
<artifactId>spring-boot-starter-swagger</artifactId>
<version>${spring-boot-starter-swagger.version}</version>
</dependency>
5.熱部署
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
6.PageHelper分頁
1.添加pom文件依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2.配置application.yml
# 與mybatis整合
mybatis:
config-location: classpath:mybatis.xml
mapper-locations:
- classpath:mapper/*.xml
# 分頁配置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
3.使用
//使用分頁
PageHelper.startPage(pageNum, pageSize);
List<GoodsType> typeList = typeDao.getList();
7.mybatis註解和xml
8.異常處理
參考:SpringBoot RESTful 應用中的異常處理小結
參考:異常統一處理進階
@ExceptionHandler方式
方法註解, 作用於 Controller 級別. ExceptionHandler 註解爲一個 Controler 定義一個異常處理器.
@ControllerAdvice方式
類註解, 作用於 整個 Spring 工程. ControllerAdvice 註解定義了一個全局的異常處理器.
需要注意的是, ExceptionHandler 的優先級比 ControllerAdvice 高, 即 Controller 拋出的異常如果既可以讓 ExceptionHandler 標註的方法處理, 又可以讓 ControllerAdvice 標註的類中的方法處理, 則優先讓 ExceptionHandler 標註的方法處理.
三、打包部署
可以使用eclipse直接導出成war包。當然更通用的方式是使用以下命令來打成jar包或者war包。
mvn clean package -Dmaven.test.skip=true
如果打成jar包,則可以用以下命令來運行
# 控制檯啓動。這種方式,只要控制檯關閉,服務就不能訪問
java -jar xx.jar
# 後臺運行啓動。
nohup java -jar xx.jar &
#打包時可選取不同的配置
java -jar app.jar --spring.profiles.active=dev
如果打成war包,則可以放入tomcat下運行。
需要注意的是:打成war前需要進行一些修改操作。
參考springboot官方文檔說明:Create a Deployable War File
①修改pom包
將
<packaging>jar</packaging>
改成
<packaging>war</packaging>
②排除tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
③修改啓動類
啓動類繼承SpringBootServletInitializer,並覆蓋configure()方法。
//繼承SpringBootServletInitializer
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
//加上這個方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}