【SpringMVC】零xml配置原理

本文详细介绍了如何实现SpringMVC的零XML配置,包括创建实现WebApplicationInitializer接口的类,配置视图解析器和消息转换器,以及利用内置Tomcat启动应用的两种方法。在实现过程中,通过Servlet3.0规范,Tomcat启动时会自动调用onStartup()方法,初始化Spring容器和SpringMVC环境。
摘要由CSDN通过智能技术生成

实现零xml配置的步骤

写一个类 实现spring 的接口:WebApplicationInitializer

  • 写一个类 实现spring 的接口:WebApplicationInitializer
  • 重写onStartup()方法,tomcat启动的时候会调用这个onStartup()方法
    onStartup()方法的入参:ServletContext就是web上下文对象 即对应web.xml
    • 初始化Spring容器,并注册Spring配置类

      AnnotationConfigWebApplicationContext ac = new AnnotationConfigWebApplicationContext();
      ac.register(AppConfig.class);//注册Spring配置类
      
    • 初始化SpringMVC环境

      DispatcherServlet servlet = new DispatcherServlet(ac);//创建DispatcherServlet
      ServletRegistration.Dynamic registration = servletCxt.addServlet("app", servlet);//将DispatcherServlet加入到servletCxt
      registration.setLoadOnStartup(1);
      registration.addMapping("*.do");
      
    @Override
    public void onStartup(ServletContext servletCxt) {
   
        //初始化spring 容器  以注解的方式
        AnnotationConfigWebApplicationContext ac = new AnnotationConfigWebApplicationContext();
        //注册Spring配置类
        ac.register(AppConfig.class);
//        ac.setServletContext(servletCxt);
//        ac.refresh();
        //A a = new A();
        //re
        //B b =new B(a);

        //A就是B的父容器   默认如果你没有自己写逻辑去控制的话 那么通过B容器去找一个对象的时候 他会尝试去A(父)容器里面去找...
        //spring mvc 做了 现在是直接默认不去父容器找 直接去子容器
//        ClassPathXmlApplicationContext
        DispatcherServlet servlet = new DispatcherServlet(ac);
        ///Spring 和Spring mvc 是2个不同的容器
        //application.xml  applica
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值