精品视频在线免费观看_国产精品资源网_欧美日韩亚洲综合在线_自拍视频国产精品

原創生活

國內 商業 滾動

基金 金融 股票

期貨金融

科技 行業 房產

銀行 公司 消費

生活滾動

保險 海外 觀察

財經 生活 期貨

當前位置:滾動 >

springmvc請求過程分析 SpringBoot框架之注解方式啟動

文章來源:財金網  發布時間: 2019-04-11 09:57:15  責任編輯:cfenews.com
+|-

【原標題:springmvc請求過程分析 SpringBoot框架之注解方式啟動】上一篇,使用Java語言創建Tomcat容器,并且通過Tomcat執行Servlet,接下來,將會使用Java語言在SpringBoot創建內置Tomcat,使用注解方式啟動SpringMVC容器。

代碼實現。

1.pom.xml文件,需要依賴的jar包。

org.apache.tomcat.embed

tomcat-embed-core

8.5.23

org.apache.tomcat

tomcat-jasper

7.0.47

org.springframework

spring-web

5.0.8.RELEASE

org.springframework

spring-webmvc

5.0.8.RELEASE

2.配置SpringMVC、Spring、DispatcherServlet的初始化類:

/**

*加載springmvc====dispatcherservlet

*/

publicclassSpringWebAppInitializerextendsAbstractAnnotationConfigDispatcherServletInitializer{

//加載根配置信息spring核心

protectedClass[]getRootConfigClasses(){

returnnewClass[0];

}

//springmvc加載配置信息

protectedClass[]getServletConfigClasses(){

returnnewClass[]{WebConfig.class};

}

//springmvc攔截的url映射,攔截所有請求

protectedString[]getServletMappings(){

returnnewString[]{"/"};//攔截所有請求

}

}

AbstractAnnotationConfigDispatcherServletInitializer這個類負責"初始化Spring容器、SpringMVC容器、配置DispatcherServlet"。

getRootConfigClasses()方法用于獲取Spring應用容器的配置文件,這里我們給定預先定義的RootConfig.class;

getServletConfigClasses負責獲取Spring MVC應用容器,這里傳入預先定義好的WebConfig.class;

getServletMappings()方法負責指定需要由DispatcherServlet映射的路徑,這里給定的是"/",意思是由DispatcherServlet處理所有向該應用發起的請求。

SpringMVC配置,加載SpringMVC容器。這里的@Configuration相當于springmvc.xml配置文件;@ComponentScan(basePackages = "com.jiuyue.controller")相當于配置文件sringmvc.xml的掃描controler應該還有印象吧;@EnableWebMvc則是開啟SpringMVC功能。

/**

*SpringMVC配置信息

*/

@Configuration//相當于配置文件springmvc.xml

@EnableWebMvc//開啟SpringMVC功能

@ComponentScan(basePackages="com.jiuyue.controller")//掃springMVC的

publicclassWebConfigextendsWebMvcConfigurerAdapter{

//配置視圖轉換器

}

根配置,加載Spring容器。

/**

*根配置

*/

@Configuration

@ComponentScan(basePackages="com.jiuyue")//掃整個spring項目的

publicclassRootConfig{

}

3.啟動類

publicclassAPP{

publicstaticvoidmain(String[]args)throwsServletException,LifecycleException{

//使用Java內置tomcat運行SpringMVC框架

//原理:tomcat加載到SpringMVC注解啟動方式,就會創建SpringMVC容器

start();

}

publicstaticvoidstart()throwsLifecycleException,ServletException{

//創建tomcat服務器

TomcattomcatServer=newTomcat();

//設置port

tomcatServer.setPort(8085);

//讀取項目路徑,'/'可以加載靜態資源

StandardContextctx=(StandardContext)tomcatServer.addWebapp("/",newFile("src/main").getAbsolutePath());

//禁止重新載入

ctx.setReloadable(false);

//class文件讀取地址

FileaddtionWebInfoClasses=newFile("target/classes");

//創建WebRoot

WebResourceRootresources=newStandardRoot(ctx);

//tomcat內部讀取class文件進行執行

//內部虛擬Tomcat空間

resources.addPreResources(newDirResourceSet(resources,"/WEB-INF/classes",addtionWebInfoClasses.getAbsolutePath(),"/"));

tomcatServer.start();

System.out.println("Java語言創建Tomcat啟動成功");

//異步進行接收請求

tomcatServer.getServer().await();

}

}

controller類

@Controller

publicclassIndexController{

@RequestMapping(value="/index",produces="text/html;charset=UTF-8")

@ResponseBody

publicStringindex(){

return"純手寫Java語言實現SpringBoot注解啟動SpringMVC容器";

}

}

訪問效果圖

配置視圖解析器

直接下WebConfig配置類中配置就可以,WebConfig就相當于springmvc.xml配置文件,前面我們在里面配置了掃包與開啟springMVC功能,接下來就在下面繼續配置視圖解析器。

@Configuration//相當與配置文件

@EnableWebMvc//開啟SpringMVC功能

@ComponentScan(basePackages="com.jiuyue.controller")//掃springMVC的

publicclassWebConfigextendsWebMvcConfigurerAdapter{

//配置視圖轉換器

//SpringMVC視圖解析器

@Bean

publicViewResolverviewResolver(){

InternalResourceViewResolverviewResolver=newInternalResourceViewResolver();

viewResolver.setPrefix("/WEB-INF/jsp/");

viewResolver.setSuffix(".jsp");

//可以在JSP頁面中通過${}訪問bean

viewResolver.setExposeContextBeansAsAttributes(true);

returnviewResolver;

}

}

JspController控制器類

@Controller

publicclassJspController{

@RequestMapping(value="/jspIndex")

publicStringjspIndex(){

return"jspIndex";

}

}

WEB-INF/jsp目錄

訪問jspIndex返回jsp頁面

業務邏輯層

將根配置,配置到初始化類

/**

*根配置

*/

@Configuration

@ComponentScan(basePackages="com.jiuyue")//掃整個spring項目的

publicclassRootConfig{

}

publicclassSpringWebAppInitializerextendsAbstractAnnotationConfigDispatcherServletInitializer{

//加載根配置信息spring核心

protectedClass[]getRootConfigClasses(){

returnnewClass[]{RootConfig.class};

}

//springmvc加載配置信息

protectedClass[]getServletConfigClasses(){

returnnewClass[]{WebConfig.class};

}

//springmvc攔截的url映射,攔截所有請求

protectedString[]getServletMappings(){

returnnewString[]{"/"};//攔截所有請求

}

}

Service類

@Service

publicclassIndexService{

publicStringindex(){

return"純手寫Java語言實現SpringBoot注解啟動SpringMVC容器";

}

}

控制器類

@ResponseBody

@RequestMapping(value="/index2",produces="text/html;charset=UTF-8")

publicStringindex2(){

returnindexService.index();

}

如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章的同學,可以關注微信公眾號:SeptemberNotes

專題首頁|財金網首頁

原創
新聞

精彩
互動

獨家
觀察

京ICP備2021034106號-38   營業執照公示信息  財金網  版權所有  cfenews.com  投稿郵箱:362293157@qq.com  業務QQ:362293157立即發帖
主站蜘蛛池模板: 俄罗斯精品一区二区三区| 69国产精品成人在线播放| 欧美亚洲另类在线| 国产三级精品网站| 日韩高清国产一区在线观看| 国产精品久久久久久久久久久久午夜片| 日韩欧美视频第二区| 在线不卡视频一区二区| 国产九九九九九| 久久99精品久久久水蜜桃| 欧美一区三区二区在线观看| 丝袜美腿亚洲一区二区| 中文字幕无码不卡免费视频 | 精品一区二区不卡| 日本午夜精品电影| 色在人av网站天堂精品| 国产精品69久久久| 国产精品91在线| 国产欧美日韩精品丝袜高跟鞋| 欧美成人在线影院| 欧美综合国产精品久久丁香| 欧美日韩在线观看一区| y97精品国产97久久久久久| 欧美精品久久久久久久久久久| 久久精品夜夜夜夜夜久久| 国产精品成久久久久三级| 91精品国产91久久久久福利| 国产精品区免费视频| 国产在线观看精品一区二区三区| 国产精品久久久久久久久电影网 | 国产美女视频免费| 国产在线精品91| 国产在线精品成人一区二区三区| 久久久国产精彩视频美女艺术照福利| 91久久久久久久一区二区| 国产熟人av一二三区| 日本三级韩国三级久久| 91精品久久久久久久久久| 国产99视频在线观看| 亚洲午夜精品一区二区三区| 国产精品午夜av在线|