天天看點

Spring Boot

Spring Boot是為了簡化Spring應用的建立、運作、調試、部署等而出現的,使用它可以做到專注于Spring應用的開發,而無需過多關注XML的配置。

簡單來說,它提供了一堆依賴打包,并已經按照使用習慣解決了依賴問題—習慣大于約定。

Spring Boot預設使用tomcat作為伺服器,使用logback提供日志記錄。

Spring Boot提供了一系列的依賴包,是以需要建構工具的支援:maven 或 gradle。

Springboot父工程依賴

Springboot web啟動器依賴

1、@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中

@ComponentScan讓spring Boot掃描到Configuration類并把它加入到程式上下文。

@Configuration 等同于spring的XML配置檔案;使用Java代碼可以檢查類型安全。

@EnableAutoConfiguration 自動配置。

@ComponentScan 元件掃描,可自動發現和裝配一些Bean。

@Component可配合CommandLineRunner使用,在程式啟動後執行一些基礎任務。

2、@RestController注解是@Controller和@ResponseBody的合集,表示這是個控制器bean,并且是将函數的傳回值直 接填入HTTP響應體中,是REST風格的控制器。在傳回值類型前加上@ResponseBody表示傳回結果是json的格式,不會是頁面。

3、@EnableAutoConfiguration:Spring Boot自動配置(auto-configuration):嘗試根據你添加的jar依賴自動配置你的Spring應用。例如,如果你的classpath下存在HSQLDB,并且你沒有手動配置任何資料庫連接配接beans,那麼我們将自動配置一個記憶體型(in-memory)資料庫”。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一個@Configuration類上來選擇自動配置。如果發現應用了你不想要的特定自動配置類,你可以使用@EnableAutoConfiguration注解的排除屬性來禁用它們。

這個注釋告訴SpringBoot“猜”你将如何想配置Spring,基于你已經添加jar依賴項。如果spring-boot-starter-web已經添加Tomcat和Spring MVC,這個注釋自動将假設您正在開發一個web應用程式并添加相應的spring設定。

  自動配置被設計用來和“Starters”一起更好的工作,但這兩個概念并不直接相關。您可以自由挑選starter依賴項以外的jar包,springboot仍将盡力自動配置您的應用程式。

4、@Bean:相當于XML中的bean,放在方法的上面,而不是類,意思是産生一個bean,并交給spring管理。

5、@RequestMapping:@RequestMapping(value = {“/”, “/index”})value值為“/”表示根目錄,“/index”表示通路路徑後面為index,方法如果直接傳回字元串,架構預設會去 spring.view.prefix 目錄下的 (index拼接spring.view.suffix)頁面;如果傳回類型為ModelAndView,則是傳回頁面,頁面由傳回的ModelAndView對象确定。

6、其他

@Autowired自動導入。

@PathVariable擷取參數。

@JsonBackReference解決嵌套外鍊問題。

@RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

1、配置application.properties

2、加入依賴

3、使用方法結合@RequestMapping的用法。

control代碼:

freemarker.ftl

Springboot中有兩種方式可以添加 Servlet、Filter、Listener

1、代碼注冊通過ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 獲得控制,并且要在方法前加上@Bean注解。

SpringBoot啟動類上添加代碼:

單請求url為xs時,就會調用JackServlet。

對應的JackServlet代碼:

2、在 SpringBootApplication 上使用@ServletComponentScan 注解後,Servlet、Filter、Listener 可以直接通過 @WebServlet、@WebFilter、@WebListener 注解自動注冊,無需其他代碼。

SpringBoot啟動類上添加注解:

servlet類添加@WebFilter(要加上urlPatterns通路路徑)就可以通路了,相應的servlet類:

1、建立我們自己的攔截器類并實作 HandlerInterceptor 接口。其中preHandle方法傳回true就是放行,false就是攔截。

2、建立一個Java類繼承WebMvcConfigurerAdapter,并重寫 addInterceptors 方法,并且需要添加@Configuration注解,讓啟動器找能夠找到。

3、執行個體化我們自定義的攔截器,然後将對像手動添加到攔截器鍊中(在addInterceptors方法中添加)。

1、Spring Boot 的預設資源映射

其中預設配置的 /**映射到 /static (或/public、/resources、/META-INF/resources)

其中預設配置的 /webjars/** 映射到 classpath:/META-INF/resources/webjars/ 上面的 static、public、resources 等目錄都在 classpath: 下面(如 src/main/resources/static)。

2、自定義資源映射

繼承 WebMvcConfigurerAdapter 并重寫方法 addResourceHandlers

registry.addResourceHandler(“/image/**”).addResourceLocations(“file:H:/image/”);

registry.addResourceHandler(“/image1/**”).addResourceLocations(“classpath:/img1/”)

3、通過配置檔案映射

使用 spring.mvc.static-path-pattern 可以重新定義pattern,如修改為 /image/**

使用 spring.resources.static-locations 可以重新定義 pattern 所指向的路徑,支援 classpath: 和 file: