亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

spring boot 實(shí)現(xiàn)配置多個(gè)DispatcherServlet最簡(jiǎn)單方式

瀏覽:18日期:2023-07-25 15:06:53

傳統(tǒng)的web項(xiàng)目,只需要在web.xml里配置多個(gè)即可,并且支持多個(gè)url-pattern

在spring boot中,我們默認(rèn)無需配置,系統(tǒng)會(huì)自動(dòng)裝配一個(gè),感興趣的可以看下源碼

org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration

里面有個(gè) DispatcherServletRegistrationBean,關(guān)鍵是這里只能指定一個(gè)path,如下的源碼截圖

spring boot 實(shí)現(xiàn)配置多個(gè)DispatcherServlet最簡(jiǎn)單方式

spring boot 實(shí)現(xiàn)配置多個(gè)DispatcherServlet最簡(jiǎn)單方式

spring boot 實(shí)現(xiàn)配置多個(gè)DispatcherServlet最簡(jiǎn)單方式

如果想要指定多個(gè),我們只能自己寫DispatcherServletRegistrationBean這個(gè)Bean了,那么系統(tǒng)就不會(huì)實(shí)例化內(nèi)置的那個(gè)了,如下代碼

@Autowired

private WebMvcProperties webMvcProperties;@Autowiredprivate MultipartConfigElement multipartConfig;

@Bean @Primary

public DispatcherServletRegistrationBean dispatcherServlet1(DispatcherServlet dispatcherServlet) { DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean( dispatcherServlet, '/*'); registration.setName('dispatcherServlet1'); registration.setLoadOnStartup( this.webMvcProperties.getServlet().getLoadOnStartup()); if (this.multipartConfig != null) { registration.setMultipartConfig(this.multipartConfig); } return registration;}

@Bean

public DispatcherServletRegistrationBean dispatcherServlet2(DispatcherServlet dispatcherServlet) { DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean( dispatcherServlet, '/aaa/*'); registration.setName('dispatcherServlet2'); registration.setLoadOnStartup( this.webMvcProperties.getServlet().getLoadOnStartup()); if (this.multipartConfig != null) { registration.setMultipartConfig(this.multipartConfig); } return registration;}

@Bean

public DispatcherServletRegistrationBean dispatcherServlet3(DispatcherServlet dispatcherServlet) { DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean( dispatcherServlet, '/bbb/*'); registration.setName('dispatcherServlet3'); registration.setLoadOnStartup( this.webMvcProperties.getServlet().getLoadOnStartup()); if (this.multipartConfig != null) { registration.setMultipartConfig(this.multipartConfig); } return registration;}

這樣我們參考底層源碼,我們做了三個(gè)Bean,注意有一個(gè)一定要加上@Primary注解,否則啟動(dòng)會(huì)有報(bào)錯(cuò)。

如果我們系統(tǒng)有一個(gè)接口url是/api/test,那么通過/aaa/api/test或者/bbb/api/test也都可以訪問了。

不建議的寫法、、、

@Bean public ServletRegistrationBean apiDispatcherServlet(){ AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); applicationContext.scan('com.be.edge.asset.web.api'); DispatcherServlet apiDispatcherServlet = new DispatcherServlet(applicationContext); ServletRegistrationBean registrationBean = new ServletRegistrationBean(apiDispatcherServlet); registrationBean.addInitParameter('throwExceptionIfNoHandlerFound', 'true'); registrationBean.setLoadOnStartup(1); registrationBean.addUrlMappings('/api/*'); registrationBean.setName('apiDispatcherServlet'); return registrationBean; } @Bean public ServletRegistrationBean mgmtDispatcherServlet(){ AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); applicationContext.scan('com.be.edge.asset.web.controller'); DispatcherServlet apiDispatcherServlet = new DispatcherServlet(applicationContext); ServletRegistrationBean registrationBean = new ServletRegistrationBean(apiDispatcherServlet); registrationBean.setLoadOnStartup(2); registrationBean.addInitParameter('throwExceptionIfNoHandlerFound', 'true'); registrationBean.addUrlMappings('/mgmt/*'); registrationBean.setName('mngDispatcherServlet'); return registrationBean; }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 91av在线国产 | 久久婷五月综合 | 欧美国产亚洲精品高清不卡 | 国产精品亚洲国产三区 | 毛片xxxx| 小泽玛利亚一区二区在线看 | 国产永久免费高清在线观看视频 | 性 色 黄 一级 | 人人爱爱人人 | 91精品久久久久久久久中文字幕 | 色播在线永久免费视频网站 | 一级视频免费观看 | 精品哟哟哟国产在线不卡 | 亚洲美女一区 | 中文字幕亚洲一区二区v@在线 | 日本免费黄色大片 | 国产大片喷水在线在线视频 | 久久国产视频精品 | 99久久伊人一区二区yy5099 | 久久精品亚洲欧美日韩久久 | 综合网婷婷| 在线高清免费爱做网 | 制服丝袜手机在线 | 免费超级淫片日本高清视频 | 国产一级毛片午夜福 | 一区二区三区国产 | 免费一级视频在线播放 | 精品国产福利第一区二区三区 | 欧美成人一级片 | 三级 在线播放 | 久久视频免费在线观看 | 麻豆传媒入口直接进入免费版 | 手机在线观看亚洲国产精品 | 成人福利小视频 | 国产精品久久久久久 | 日韩欧美在线综合网高清 | 91高清在线成人免费观看 | 国产亚洲精品不卡在线 | 成人乱码| 日韩成人黄色 | 欧美成人综合在线观看视频 |