SpringMVC零xml配置原理
实现零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