1. spring boot 為什麼要用webmvcconfigurationsupport,是干什麼用的
在spring boot的自定義配置類繼承WebMvcConfigurationSupport 後,發現自動配置的靜態資源路徑(classpath:/META/resources/,classpath:/resources/,classpath:/static/,classpath:/public/)不生效。
首先看一下 自動配置類的定義:
2. 為什麼springboot可以不配置web.xml
springboot已經給用戶做了封裝,一切bean都是靠註解自動配置的,所以就廢棄了web.xml
3. spring boot框架的web.xml文件怎麼配置
Spring分為多個文件進行分別的配置,其中在servlet-name中如果沒有指定init-param屬性,那麼系統自動尋找的spring配置文件為[servlet-name]-servlet.xml。
當需要載入多個spring相關的配置文件時,首先載入ContextLoaderListener類,再指定context-param中指定多個spring配置文件,使用逗號分別隔開各個文件。為了使用方便可以將配置文件進行MVC式的分解,配置控制器Bean的配置文件放置在一個xml文件中,server的Bean放在service.xml文件中。
4. spring-boot怎麼配置web.xml中的內容
Spring分為多個文件進行分別的配置,其中在servlet-name中如果沒有指定init-param屬性,那麼系統自動尋找的spring配置文件為[servlet-name]-servlet.xml。
當需要載入多個spring相關的配置文件時,首先載入ContextLoaderListener類,再指定context-param中指定多個spring配置文件,使用逗號分別隔開各個文件。為了使用方便可以將配置文件進行MVC式的分解,配置控制器Bean的配置文件放置在一個xml文件中,server的Bean放在service.xml文件中。
5. 如何修改基於Spring Boot開發的Web應用的埠
web伺服器的埠在Spring Boot中是以server.port這個屬性存在的,以下方法都可以推而廣之到任何屬性:
修改Spring Boot應用類路徑上的application.properties文件,設置server.port=1234,1234就是你想要的埠。
在啟動Spring Boot應用的命令行參數(也就是JVM參數中)加入-Dserver.port=1234
利用@Configuration配置Tomcat容器:
- @Configurationpublic class ServletConfig { @Bean
- public containerCustomizer() { return (container -> {
- container.setPort(1234);
- });
- }
- }
- System.getProperties().put( "server.port", 1234 );
- SpringApplication.run(App.class, args);
也可以利用Java的System Properties來設置:
總之Spring Boot有一個異常強大和靈活的配置系統,請參考官方文檔了解更多。
6. spring boot 怎麼創建web
Spring Boot充分利用了JavaConfig的配置模式以及「約定優於配置」的理念,能夠極大的簡化基於Spring
MVC的Web應用和REST服務開發。
Spring
4倡導微服務的架構,針對這一理念,近來在微博上也有一些有價值的討論,如這里和這里。微服務架構倡導將功能拆分到離散的服務中,獨立地進行部署,Spring
Boot能夠很方便地將應用打包成獨立可運行的JAR包,因此在開發模式上很契合這一理念。目前,Spring
Boot依然是0.5.0的里程碑版本,因此相關的文檔尚不完善,本文將會以一個簡單的樣例來介紹基於這個項目的開發過程。
要Spring
Boot進行功能開發,需要使用Gradle或者Maven作為構建工具。在本例中,我們會使用Eclipse和Maven插件進行開發。要使用Spring
Boot,首先創建一個Maven工程,並修改Maven主要的配置文件pom.xml,如下所示:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>0.5.0.M7</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
</dependency>
</dependencies>
<properties>
<start-class>com.levin.Application</start-class>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestone</id>
7. 「spring boot」框架的「web.xml」文件怎麼配置
首先我們先配置welcomefile-list
我們先聲明一個類繼承WebMvcConfigurerAdapter重寫如下方法即可
註解不能忘
@Configuration@EnableWebMvc@ComponentScan(basePackages =
@Overridepublic void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/").setViewName("forward:/login.html");}
配置controller類返回至指定目錄,需要重寫如下方法
@Beanpublic ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/view/"); resolver.setSuffix(".jsp"); resolver.(true); return resolver;}
我們把另一個類用於配置監聽事件編碼
Configurationpublic class WebInitializer extends {
getRootConfigClasses 用於配置最先執行的一些配置文件,如RootConfig.java 比如自定義的filter
getServletConfigClasses 這個文件是用於配置welcomefilelist 前置目錄+後綴 error-page等
8. spring-boot 適合開發web應用嗎
spring-boot 適合開發web應用的
靜態資源訪問
在我們開發Web應用的時候,需要引用大量的js、css、圖片等靜態資源。
默認配置
Spring Boot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:
/static
/public
/resources
/META-INF/resources
舉例:我們可以在src/main/resources/目錄下創建static,在該位置放置一個圖片文件。啟動程序後,嘗試訪問http://localhost:8080/D.jpg。如能顯示圖片,配置成功。
渲染Web頁面
在之前的示例中,我們都是通過@RestController來處理請求,所以返回的內容為json對象。那麼如果需要渲染html頁面的時候,要如何實現呢?
模板引擎
在動態HTML實現上Spring Boot依然可以完美勝任,並且提供了多種模板引擎的默認配置支持,所以在推薦的模板引擎下,我們可以很快的上手開發動態網站。
Spring Boot提供了默認配置的模板引擎主要有以下幾種:
Thymeleaf
FreeMarker
Velocity
Groovy
Mustache
Spring Boot建議使用這些模板引擎,避免使用JSP,若一定要使用JSP將無法實現Spring Boot的多種特性,具體可見後文:支持JSP的配置
當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑為:src/main/resources/templates。當然也可以修改這個路徑,具體如何修改,可在後續各模板引擎的配置屬性中查詢並修改。
Thymeleaf
Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。它是一個開源的Java庫,基於Apache License 2.0許可,由Daniel Fernández創建,該作者還是Java加密庫Jasypt的作者。
Thymeleaf提供了一個用於整合Spring MVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。
9. 如何利用spring boot做一個簡單的web應用
spring-boot適合開發web應用的靜態資源訪問在我們開發Web應用的時候,需要引用大量的js、css、圖片等靜態資源。默認配置SpringBoot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:/static/public/resources/META-INF/resources舉例:我們可以在src/main/resources/目錄下創建static,在該位置放置一個圖片文件。啟動程序後,嘗試訪問頁面的時候,要如何實現呢?模板引擎在動態HTML實現上SpringBoot依然可以完美勝任,並且提供了多種模板引擎的默認配置支持,所以在推薦的模板引擎下,我們可以很快的上手開發動態網站。SpringBoot提供了默認配置的模板引擎主要有以下幾種:建議使用這些模板引擎,避免使用JSP,若一定要使用JSP將無法實現SpringBoot的多種特性,具體可見後文:支持JSP的配置當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑為:src/main/resources/templates。當然也可以修改這個路徑,具體如何修改,可在後續各模板引擎的配置屬性中查詢並修改。ThymeleafThymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。它是一個開源的Java庫,基於ApacheLicense2.0許可,由DanielFernández創建,該作者還是Java加密庫Jasypt的作者。Thymeleaf提供了一個用於整合SpringMVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。
10. SpringBoot的配置文件有哪幾種格式
SpringBoot中的配置文件主要有三種格式,properties、yaml、和xml方式。
- 其中properties格式配置文件後綴是.properties,配置項為:server.port = 9090
- yaml格式配置文件後綴是.yml,配置項是:server.port: 9090
在SpringBoot中,使用最廣泛的配置文件是yaml,yaml之所以流行,除了他配置語法精簡之外,還因為yaml是一個跨編程語言的配置文件。
在SpringBoot中,除了yaml之外,properties也比較常用,但是XML幾乎不用,看得出來Spring團隊非常痛恨XML配置文件!認為它不是一個好的語言。
如果你對常見的配置文件有哪幾種格式不熟悉,就去黑馬程序員官網視頻庫看免費視頻。