下面列出了org.springframework.web.servlet.DispatcherServlet#getWebApplicationContext ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
public void rootContextOnly() throws ServletException {
initializer = new MyAnnotationConfigDispatcherServletInitializer() {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {MyConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
};
initializer.onStartup(servletContext);
DispatcherServlet servlet = (DispatcherServlet) servlets.get(SERVLET_NAME);
servlet.init(new MockServletConfig(this.servletContext));
WebApplicationContext wac = servlet.getWebApplicationContext();
((AnnotationConfigWebApplicationContext) wac).refresh();
assertTrue(wac.containsBean("bean"));
assertTrue(wac.getBean("bean") instanceof MyBean);
}
@Test
public void rootContextOnly() throws ServletException {
initializer = new MyAnnotationConfigDispatcherServletInitializer() {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {MyConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
};
initializer.onStartup(servletContext);
DispatcherServlet servlet = (DispatcherServlet) servlets.get(SERVLET_NAME);
servlet.init(new MockServletConfig(this.servletContext));
WebApplicationContext wac = servlet.getWebApplicationContext();
((AnnotationConfigWebApplicationContext) wac).refresh();
assertTrue(wac.containsBean("bean"));
assertTrue(wac.getBean("bean") instanceof MyBean);
}
@Test
public void rootContextOnly() throws ServletException {
initializer = new MyAnnotationConfigDispatcherServletInitializer() {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {MyConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
};
initializer.onStartup(servletContext);
DispatcherServlet servlet = (DispatcherServlet) servlets.get(SERVLET_NAME);
servlet.init(new MockServletConfig(this.servletContext));
WebApplicationContext wac = servlet.getWebApplicationContext();
((AnnotationConfigWebApplicationContext) wac).refresh();
assertTrue(wac.containsBean("bean"));
assertTrue(wac.getBean("bean") instanceof MyBean);
}
@Test
public void register() throws ServletException {
initializer.onStartup(servletContext);
assertEquals(1, servlets.size());
assertNotNull(servlets.get(SERVLET_NAME));
DispatcherServlet servlet = (DispatcherServlet) servlets.get(SERVLET_NAME);
WebApplicationContext wac = servlet.getWebApplicationContext();
((AnnotationConfigWebApplicationContext) wac).refresh();
assertTrue(wac.containsBean("bean"));
assertTrue(wac.getBean("bean") instanceof MyBean);
assertEquals(1, servletRegistrations.size());
assertNotNull(servletRegistrations.get(SERVLET_NAME));
MockServletRegistration servletRegistration = servletRegistrations.get(SERVLET_NAME);
assertEquals(Collections.singleton(SERVLET_MAPPING), servletRegistration.getMappings());
assertEquals(1, servletRegistration.getLoadOnStartup());
assertEquals(ROLE_NAME, servletRegistration.getRunAsRole());
assertTrue(servletRegistration.isAsyncSupported());
assertEquals(4, filterRegistrations.size());
assertNotNull(filterRegistrations.get("hiddenHttpMethodFilter"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy#0"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy#1"));
for (MockFilterRegistration filterRegistration : filterRegistrations.values()) {
assertTrue(filterRegistration.isAsyncSupported());
EnumSet<DispatcherType> enumSet = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD,
DispatcherType.INCLUDE, DispatcherType.ASYNC);
assertEquals(enumSet, filterRegistration.getMappings().get(SERVLET_NAME));
}
}
@Test
public void register() throws ServletException {
initializer.onStartup(servletContext);
assertEquals(1, servlets.size());
assertNotNull(servlets.get(SERVLET_NAME));
DispatcherServlet servlet = (DispatcherServlet) servlets.get(SERVLET_NAME);
WebApplicationContext wac = servlet.getWebApplicationContext();
((AnnotationConfigWebApplicationContext) wac).refresh();
assertTrue(wac.containsBean("bean"));
assertTrue(wac.getBean("bean") instanceof MyBean);
assertEquals(1, servletRegistrations.size());
assertNotNull(servletRegistrations.get(SERVLET_NAME));
MockServletRegistration servletRegistration = servletRegistrations.get(SERVLET_NAME);
assertEquals(Collections.singleton(SERVLET_MAPPING), servletRegistration.getMappings());
assertEquals(1, servletRegistration.getLoadOnStartup());
assertEquals(ROLE_NAME, servletRegistration.getRunAsRole());
assertTrue(servletRegistration.isAsyncSupported());
assertEquals(4, filterRegistrations.size());
assertNotNull(filterRegistrations.get("hiddenHttpMethodFilter"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy#0"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy#1"));
for (MockFilterRegistration filterRegistration : filterRegistrations.values()) {
assertTrue(filterRegistration.isAsyncSupported());
EnumSet<DispatcherType> enumSet = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD,
DispatcherType.INCLUDE, DispatcherType.ASYNC);
assertEquals(enumSet, filterRegistration.getMappings().get(SERVLET_NAME));
}
}
@Test
public void register() throws ServletException {
initializer.onStartup(servletContext);
assertEquals(1, servlets.size());
assertNotNull(servlets.get(SERVLET_NAME));
DispatcherServlet servlet = (DispatcherServlet) servlets.get(SERVLET_NAME);
WebApplicationContext wac = servlet.getWebApplicationContext();
((AnnotationConfigWebApplicationContext) wac).refresh();
assertTrue(wac.containsBean("bean"));
assertTrue(wac.getBean("bean") instanceof MyBean);
assertEquals(1, servletRegistrations.size());
assertNotNull(servletRegistrations.get(SERVLET_NAME));
MockServletRegistration servletRegistration = servletRegistrations.get(SERVLET_NAME);
assertEquals(Collections.singleton(SERVLET_MAPPING), servletRegistration.getMappings());
assertEquals(1, servletRegistration.getLoadOnStartup());
assertEquals(ROLE_NAME, servletRegistration.getRunAsRole());
assertTrue(servletRegistration.isAsyncSupported());
assertEquals(4, filterRegistrations.size());
assertNotNull(filterRegistrations.get("hiddenHttpMethodFilter"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy#0"));
assertNotNull(filterRegistrations.get("delegatingFilterProxy#1"));
for (MockFilterRegistration filterRegistration : filterRegistrations.values()) {
assertTrue(filterRegistration.isAsyncSupported());
assertEquals(EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.ASYNC),
filterRegistration.getMappings().get(SERVLET_NAME));
}
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if ("adminDispatcherServlet".equals(beanName)) {
DispatcherServlet dispatcherServlet = (DispatcherServlet) bean;
AnnotationConfigServletWebServerApplicationContext context = (AnnotationConfigServletWebServerApplicationContext) dispatcherServlet.getWebApplicationContext();
context.scan(packagesToScan);
this.processed = true;
}
return bean;
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME.equals(beanName)) {
DispatcherServlet dispatcherServlet = (DispatcherServlet) bean;
AnnotationConfigServletWebServerApplicationContext context = (AnnotationConfigServletWebServerApplicationContext) dispatcherServlet.getWebApplicationContext();
context.scan(packagesToScan);
this.processed = true;
}
return bean;
}