springMvc项目的搭建,暂时没有整合持久层框架(java Config配置对比xml配置)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | public class WebInit implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { //项目启动则执行 : //前端控制器 //对比xml配置,配置在web.xml中的 /* * <servlet> * <servlet-name>dispatcherServlet</servlet-name> * <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> * <init-param> * <param-name>contextConfigLocation</param-name> * <param-value>/WEB-INF/classes/application.xml</param-value> * </init-param> * <load-on-startup>1</load-on-startup> * </servlet> * <servlet-mapping> * <servlet-name>dispatherServlet</servlet-name> * <url-pattern>*.do</url-pattern> * </servlet-mapping> * */ //javaConfig配置 //这句相当于控制器核心类 ServletRegistration.Dynamic dispatcherServletRegistration = container.addServlet( "dispatcher" , new DispatcherServlet()); //这句相当于配置服务器启动就加载servlet容器 dispatcherServletRegistration.setLoadOnStartup( 1 ); //这句相当于配置注解驱动 dispatcherServletRegistration.setInitParameter( "contextClass" , "org.springframework.web.context.support.AnnotationConfigWebApplicationContext" ); //这句相当于加载springmvc核心配置文件 dispatcherServletRegistration.setInitParameter( "contextConfigLocation" , "com.mike.small.config.SpringMvcConfig" ); //拦截所有url dispatcherServletRegistration.addMapping( "/" ); //处理乱码过滤器 CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding( "UTF-8" ); FilterRegistration.Dynamic characterEncodingFilterRegistration = container.addFilter( "characterEncodingFilter" , filter); characterEncodingFilterRegistration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD), false , "/*" ); //注解驱动类 AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(SpringMvcConfig. class ); //这句相当于web.xml的监听器 /*<listener> <listener- class >org.springframework.web.context.ContextLoaderListener</listener- class > </listener> */ container.addListener( new ContextLoaderListener(rootContext)); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | @Configuration // this class contains bean definitions @EnableWebMvc // same as <mvc:annotation-driven /> @ComponentScan (basePackages = { "com.mike.small" }) public class SpringMvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // declare static resources registry.addResourceHandler( "/static/**" ).addResourceLocations( "/static/" ); } @Bean public InternalResourceViewResolver viewResolver() { // view resolver InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix( "/WEB-INF/jsp/" ); resolver.setSuffix( ".jsp" ); return resolver; } @Bean public CommonsMultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize( 104857600 ); return multipartResolver; } } |
关于http协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!