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: