怎么做网站的项目预算,360免费视频网站建设,2021最新新闻及点评,柳城企业网站建设价格几年前#xff0c;我们大多数人习惯到处编写XML配置文件#xff0c;甚至可以设置简单的Java EE应用程序。 如今#xff0c;使用Java或Groovy来配置项目已成为一种首选方式–您只需要看一下Spring框架的其他版本中引入的Gradle或功能#xff0c;就可以对此进行总结。 现在我们大多数人习惯到处编写XML配置文件甚至可以设置简单的Java EE应用程序。 如今使用Java或Groovy来配置项目已成为一种首选方式–您只需要看一下Spring框架的其他版本中引入的Gradle或功能就可以对此进行总结。 现在我将为Web应用程序配置Spring上下文。 Java EE提供了ServletContainerInitializer接口该接口允许在Web应用程序启动时通知库。 从Spring 3.1开始我们有了SpringServletContainerInitializer类该类通过实例化所有实现此接口的找到的类来处理WebApplicationInitializer 并根据Order注释对它们进行排序未注释的类获得最高的顺序因此它们将在最后处理并调用onStartup方法。 从3.2版开始的Spring给我们提供了一些实现WebApplicationInitializer接口的类首先是AbstractContextLoaderInitializer 。 spring-web模块中包含的此类使用抽象的createRootApplicationContext方法创建应用程序上下文并将其委托给ContextLoaderListener 然后将其注册到ServletContext实例中。 使用此类创建应用程序上下文如下所示 public class SpringAnnotationWebInitializerextends AbstractContextLoaderInitializer {Overrideprotected WebApplicationContext createRootApplicationContext() {AnnotationConfigWebApplicationContext applicationContext new AnnotationConfigWebApplicationContext();applicationContext.register(SpringAnnotationConfig.class);return applicationContext;}} 这是启动Spring Web上下文的最简单方法。 但是如果我们想体验Spring MVC提供的好处并且不想手动注册DispatcherServlet 那么最好使用另一个类 AbstractDispatcherServletInitializer 。 它扩展了上一类并添加了两个抽象方法 createServletApplicationContext和getServletMappings 。 第一个方法返回将传递给DispatcherServlet的 WebApplicationContext 它将自动添加到容器ServletContext中 。 请注意此上下文将被建立为createRootApplicationContext方法返回的上下文的子级。 第二种方法-您可能已经推论出了-返回在servlet注册期间使用的映射。 如果需要任何自定义过滤器还可以重写getServletFilters方法因为默认实现只返回空数组。 使用此类的示例性实现可以是 public class SpringWebMvcInitializerextends AbstractDispatcherServletInitializer {Overrideprotected WebApplicationContext createRootApplicationContext() {AnnotationConfigWebApplicationContext applicationContext new AnnotationConfigWebApplicationContext();applicationContext.register(SpringRootConfig.class);return applicationContext;}Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext applicationContext new AnnotationConfigWebApplicationContext();applicationContext.register(SpringMvcConfig.class);return applicationContext;}Overrideprotected String[] getServletMappings() {return new String[]{/*};}} 现在最后但绝对不是最不重要的一类 AbstractAnnotationConfigDispatcherServletInitializer 。 在这里我们可以看到简化Spring初始化的进一步步骤-我们不需要手动创建上下文而只需在getRootConfigClasses和getServletConfigClasses方法中设置适当的配置类。 我希望您已经熟悉这些名称因为它们的工作方式与前一种情况完全相同。 当然由于此类扩展了AbstractDispatcherServletInitializer我们仍然可以重写getServletFilters 。 最后我们可以通过以下方式实现我们的配置 public class SpringWebMvcSimpleInitializerextends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class?[] getRootConfigClasses() {return new Class[] {SpringRootConfig.class};}Overrideprotected Class?[] getServletConfigClasses() {return new Class[] {SpringMvcConfig.class};}Overrideprotected String[] getServletMappings() {return new String[]{/*};}} 如果您希望看到更广泛的上下文请遵循我的GitHub存储库中的示例 https : //github.com/jkubrynski/spring-java-config-samples/ 参考从JavaBLog博客的JCG合作伙伴 Jakub Kubrynski 了解Spring Web初始化 。 翻译自: https://www.javacodegeeks.com/2014/01/understanding-spring-web-initialization.html