javascript
springboot html引入js_SpringBoot-05-web开发
5. SpringBoot Web開發
5.1 web開發探究
簡介SpringBoot最大的特點就是自動裝配!
使用SpringBoot的步驟:
比如SpringBoot到底幫我們配置了什么?我們能不能修改?我們能修改哪些配置?我們能不能擴展?
- 向容器中自動配置組件:xxxAutoConfiguration
- 自動配置類,封裝配置文件的內容:xxxProperties
5.2 靜態資源處理
靜態資源映射規則首先,我們搭建一個普通的SpringBoot項目,回顧一下HelloWorld程序!
寫請求很簡單,那我們要引入前端資源,比如css,js等文件,Springboot會怎么處理呢?
如果是一個web應用,我們的main下會有一個webapp。但是現在的pom,打包方式是jar的方式,那么這種方式下springboot對靜態資源的放置,是有規定的!
聊聊靜態資源映射規則:
SpringBoot中,SpringMVC的web配置都在WebMvcAutoConfiguration這個配置類里;進入這個類后我們可以看到一個方法:
addResourceHandlers 添加資源處理讀一下源代碼:比如所有的/webjars/,都需要去classpath:/META-INF/resources/webjars/找對應的資源。
什么是webjars呢?Webjars本質就是以jar包的方式引入我們的靜態資源,以前要導入一個靜態資源,直接導入即可。
使用Springboot需要使用webjars,官網
要使用jQuery,我們只需引入jQuery對應版本的pom依賴即可!
<dependency><groupId>org.webjars</groupId><artifactId>jquery</artifactId><version>3.5.1</version></dependency>導入完畢,查看webjars目錄結構,并訪問query.js文件!
訪問:只要是靜態資源,Springboot就會去對應的路徑尋找資源,我們這里可以訪問:http://localhost:8080/webjars/jquery3.5.1/jquery.js
第二種靜態資源映射規則那我們項目中要使用自己的靜態資源該怎么導入呢?
在staticPathPattern發現第二種映射規則:/**,訪問當前項目任意資源,它會去找ResourceProperties這個類,點進去發現:
ResourceProperties可以設置和我們靜態資源有關的參數,這里面指向了它去尋找資源的文件夾,即上面數組的內容,所以以下四個目錄存放的靜態資源可以被識別:
"classpath:/META-INF/resources/""classpath:/resources/""classpath:/static/""classpath:/public/"優先級向上以此增加!
我們可以在resources根目錄下新建對應的文件夾,都可以存放我們的靜態文件;
自定義靜態資源路徑可以配置自定義路徑,application.properties:
spring.resources.static-locations=classpath:/coding,classpath:/huba/注意:
一旦自定義了靜態文件的路徑,原來的自動配置都失效!
小結- webjars(pom依賴)
- localhost:8080/webjars/...
- public static /** resources
- localhost:8080/...
- public static /** resources
2. 優先級:resources>static(默認)>public
5.3 首頁處理
源碼中我們可以看到歡迎頁的映射,就是我們的首頁!
@Beanpublic WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(new TemplateAvailabilityProviders(applicationContext), applicationContext, getWelcomePage(),this.mvcProperties.getStaticPathPattern());welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));welcomePageHandlerMapping.setCorsConfigurations(getCorsConfigurations());return welcomePageHandlerMapping;}點進去繼續看
private Resource getIndexHtml(String location) {return this.resourceLoader.getResource(location + "index.html");}歡迎頁,靜態資源下的所有index.html;被/**映射。
比如訪問localhost:8080/,就會找靜態資源文件夾下的index.html;
測試:
與其他靜態資源一樣,Springboot在配置的靜態內容位置中查找favicon.ico。如果存在,自動用作應用程序的favicon。
FAVICON("/**/favicon.ico");?private final String[] patterns;?StaticResourceLocation(String... patterns) {this.patterns = patterns;}總結
以上是生活随笔為你收集整理的springboot html引入js_SpringBoot-05-web开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python做运动控制_ROS探索总结-
- 下一篇: ddos压力测试_蓝盟IT外包,浅析DD