首先在我们开发中会与到各种各样的容器,今天我们就说一下spring 容器与springmvc容器,其实这两个没有必要是说spring 容器或者说springmvc 容器,其实这两个都会执行spring 核心方法refreash();其实有时候网上有说这两个容器的区别,我感觉这个没有不是很容易说的问题,这个问题比较较真,其实spring 容器我感觉是spring 运行环境,各种组件、处理器等等的一个总称。这两个也是侧重点不同才有了不同的叫法。
1、spring 容器
/** * spring 容器初始化 */ AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(); annotationConfigApplicationContext.register(CaiConfig.class); annotationConfigApplicationContext.refresh();
2、springmvc 原始启动
//这段时官网提供
public class MyWebApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletCxt) {
// Load Spring web application configuration AnnotationConfigWebApplicationContext ac = new AnnotationConfigWebApplicationContext();
ac.register(AppConfig.class);
ac.refresh();
// Create and register the DispatcherServlet DispatcherServlet servlet = new DispatcherServlet(ac); ServletRegistration.Dynamic registration = servletCxt.addServlet("app", servlet);
registration.setLoadOnStartup(1);
registration.addMapping("/app/*"); }
}
上述简单的几行代码很能说明问题,第一段主要是我们启动spring 容器,管理我们的类,初始化组建,后置处理器等等,那么第二段我们是一个springmvc 的初始化,增加侧重于服务请求处理等问题。其实查看跟踪源码我们的这些容器最终都会调用我们的refresh()核心方法,因为这个方法是spring的核心,我们需要的第三方插件,aop 等等都是在这里初始化完成的,所以spring 容器是一个很大的范畴。比如
AnnotationConfigApplicationContext \ 注解应用场景
ClassPathXmlApplicationContext xml 应用场景
DispatcherServlet springmvc 应用场景
每一个类都有它使用的场景,只不过根据侧重点不同叫法不一,但是底层运行机制都一样。