【springboot筆記】

一、常用的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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章