『壹』 SpringBoot Web項目依賴分析
在上篇中,我們得到如下的pom.xml
看看其核心類容:
按住ctrl並點擊parent中spring-boot-stater-parent節點,可以看到
spring-boot-stater-parent有一個parent spring-boot-dependencies
根據名字分析,是spring-boot項目依賴的
繼續點擊spring-boot-dependencies
可以看到其在properties中配置了大量的依賴版本
我當前這個版本(2.2.3.RELEASE)在properties中共配置了203個依賴的版本
properties下面 dependencyManagement節點中,配置了依賴組建的版本:
在項目的pom.xml中查看依賴樹:
可以看到springboot-starter-web添加了tomcat,web,webmvc,spring-core,spring-context等依賴
這也就是為什麼我們可以直接通過DemoApplication.main來運行,而不需要配置外部servlet容器的原因,同時,通過這個starter-web就已經將web相關的依賴都整合進來了。
springboot中提供了很多starter,比如
『貳』 spring配置文件在web.xml中怎麼配的
<context-param>標簽的意思當然是初始化啟動了.
classpath:applicationContext.xml的意思就是從classpath:路徑中找到SPRING的配置文件並載入上..classpath:也可以改成/WEB-INF/.就看配置文件放哪了
監聽器會幫你新建BeanFactory介面的實例.然後就可以大膽的用IOC了.SPRING中配置的依賴關系都會生效.
『叄』 Spring boot 中 WebMvcConfigurationSupport 詳解
新寫了一個簡單項目,裡面需要提供一個介面給第三方訪問,第三方要求的介面響應時間為3s,因此需要對介面進行時間的記錄 以下是具體的使用。
實現HandlerInterceptor這個介面
以上兩步完成,即完成攔截器的注冊。該攔截器會對 /sell_record/** 請求路徑進行攔截。
controller測試類
一個簡單的攔截器就寫完了~
其中用的比較多的是一下三個介面:
靜態資源處理
非常重要的提示: Springboot 中只能有一個 WebMvcConfigurationSupport 配置類是真正起作用的,對於這個問題,其實可以通過 implements WebMvcConfigurer 來解決,多個不同的類實現這個介面後的配置都可以正常運行。
具體可參考 [ Spring Boot中只能有一個WebMvcConfigurationSupport配置類
『肆』 如何修改基於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有一個異常強大和靈活的配置系統,請參考官方文檔了解更多。
『伍』 「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等
『陸』 JAVA maven創建web項目,把Spring框架配置文件放在src/main/resources中讀取不到配置文件
classpath:是從類路徑里查找配置文件,也就是/WEB-INF/classes目錄下找SpringMVC-servlet.xml。
你寫了classpath了,不會從web-info下找,而是去web-inf/classes下面找,所以找不到。