首页 > 其他分享 >mvc纯注解驱动

mvc纯注解驱动

时间:2023-04-12 23:23:22浏览次数:37  
标签:web org springframework 驱动 mvc import Override 注解 servlet

1、自定义servlet容器初始化配置类,加载SpringMVC核心配置类,代替web.xml

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;

import javax.servlet.DispatcherType;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import java.util.EnumSet;

public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
    //创建Servlet容器时,使用注解的方式加载SPRINGMVC配置类中的信息,并加载成WEB专用的ApplicationContext对象
    //该对象放入了ServletContext范围,后期在整个WEB容器中可以随时获取调用
    @Override
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(SpringMVCConfiguration.class);
        return ctx;
    }

    //注解配置映射地址方式,服务于SpringMVC的核心控制器DispatcherServlet
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }

    //乱码处理作为过滤器,在servlet容器启动时进行配置,相关内容参看Servlet零配置相关课程
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        super.onStartup(servletContext);
        CharacterEncodingFilter cef = new CharacterEncodingFilter();
        cef.setEncoding("UTF-8");
        FilterRegistration.Dynamic registration = servletContext.addFilter("characterEncodingFilter", cef);
        registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST,DispatcherType.FORWARD,DispatcherType.INCLUDE),false,"/*");
    }
}

2、配置mvc的bean并加载静态资源的配置,代替spring-mvc.xml

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@ComponentScan(value = "com.itheima",includeFilters =
    @ComponentScan.Filter(type=FilterType.ANNOTATION,classes = {Controller.class})
    )
public class SpringMVCConfiguration implements WebMvcConfigurer{
    //注解配置放行指定资源格式
//    @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/img/**").addResourceLocations("/img/");
//        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
//        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
//    }

    //注解配置通用放行资源的格式
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();;
    }
}

 

标签:web,org,springframework,驱动,mvc,import,Override,注解,servlet
From: https://www.cnblogs.com/weiduaini/p/17311851.html

相关文章

  • Springmvc常用注解参数与返回值
    1.常用注解1.1.@RequestMapping@RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上。标注在方法上用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法@ControllerpublicclassHelloController{......
  • Springmvc入门
             1.什么是springmvcSpringWebMVC是一种基于Java的实现了MVC设计模式的、请求驱动类型的、轻量级Web框架。ssm:即springmvc,spring,mybatis  2.项目中加入springmvc支持2.1导入依赖<dependency><groupId>org.springframework</groupI......
  • MBI5253GFN-A专为LED视频应用而设计的16通道PWM恒流LED驱动器芯片
    MBI5253GFN-A是为使用内部脉宽调制(PWM)控制的LED视频应用而设计的,具有可选择的14位/13位色深。MBI5253具有一个16位移位寄存器,它将串行输入数据转换为输出端口的每个像素灰度。16个调节电流端口设计用于提供均匀和恒定的电流接收器,以驱动具有广泛VF变化范围的LED。输出电流可以通过......
  • 图数据库驱动的基础设施运维实操
    本文系图技术在大型、复杂基础设施之中SRE/DevOps的实践参考,并以OpenStack系统之上的图数据库增强的运维案例为例,揭示图数据库、图算法在智能运维上的应用。本文所有示例代码开源。最近,有些尚未使用过图技术、DevOps/Infra领域的工程师在NebulaGraph社区询问是否有「图......
  • mvc概述
       ......
  • 图数据库驱动的基础设施运维实操
    本文系图技术在大型、复杂基础设施之中SRE/DevOps的实践参考,并以OpenStack系统之上的图数据库增强的运维案例为例,揭示图数据库、图算法在智能运维上的应用。本文所有示例代码开源。最近,有些尚未使用过图技术、DevOps/Infra领域的工程师在NebulaGraph社区询问是否有「图......
  • .net 6 MVC项目发布iis 没有views
    解决方案1.安装Nuget包:Install-PackageMicrosoft.AspNetCore.Mvc.Razor.RuntimeCompilation2.在Program.cs中的AddControllersWithViews()之后添加对AddRazorRuntimeCompilation()的调用。也就是builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();......
  • SpringBoot启动后获取特定注解的Bean实例代码(转)
    来自:https://zhuanlan.zhihu.com/p/375973197本文研究的主要是Spring启动后获取所有拥有特定注解的Bean,具体如下。最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationContext中......
  • springboot中获取指定包下的包含某个注解的全部类(转)
    来自:https://www.cnblogs.com/lexiaoyao1995/p/13943784.html需求获取spring项目里的带有某个注解的全部类难点需要扫描指定包路径下的类,同时也要扫描其下所有子包思路可以自己实现,推荐使用spring的工具类代码packagecom.example.demo;importcom.example.demo.annos......
  • spring声明式事务(注解)
     xml中开启注解驱动:  ......