栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC基本配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC基本配置

1、常规配置(Controller加载控制)

SpringMVC的处理器对应的bean必须按照规范格式开发,未避免加入无效的bean可通过bean加载过滤器进 行包含设定或排除设定,表现层bean标注通常设定为@Controller

 xml方式


    

注解方式(配置在spring配置类中)

@ComponentScan(
        value = "com.itheima",
        includeFilters =
                @ComponentScan.Filter(
                        type=FilterType.ANNOTATION,
                        classes = {Controller.class})
    )

2、静态资源加载

配置spring的xml配置文件中






3、中文乱码处理

SpringMVC提供专用的中文字符过滤器,用于处理乱码问题

配置在 web.xml 里面


    CharacterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        UTF-8
    


    CharacterEncodingFilter
    /*

3、注解驱动

使用注解形式转化SpringMVC核心配置文件为配置类(取代spring-mvc.xml )

@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();;
    }
}

 基于servlet3.0规范,自定义Servlet容器初始化配置类,加载SpringMVC核心配置类(取代web.xml)

public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
    //创建Servlet容器时,使用注解的方式加载SPRINGMVC配置类中的信息,并加载成WEB专用的			           //ApplicationContext对象
    //该对象放入了ServletContext范围,后期在整个WEB容器中可以随时获取调用
    @Override
    protected WebApplicationContext createServletApplicationContext() {
        // 加载spring的配置文件
        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容器启动时进行配置
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        // 调用父类的onStartup
        super.onStartup(servletContext);
        // 创建字符集过滤器对象
        CharacterEncodingFilter cef = new CharacterEncodingFilter();
        // 设置使用的字符集
        cef.setEncoding("UTF-8");
        // 添加到容器(他不是ioc容器,而是ServletContainer)
        FilterRegistration.Dynamic registration = servletContext.addFilter("characterEncodingFilter", cef);
       // 添加映射
        registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST,DispatcherType.FORWARD,DispatcherType.INCLUDE),false,"/*");
    }
}

删除web.xml,删除spring-mvc.xml

4、小结
    基于servlet3.0规范,配置Servlet容器初始化配置类,初始化时加载SpringMVC配置类转化SpringMVC核心配置文件转化为注解(例如: spring处理器加载过滤)转化为bean进行加载按照标准接口进行开发并加载(例如:中文乱码处理、静态资源加载过滤)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号