相关疑难解决方法(0)

具有多个调度程序的Spring Java Config

我现在有一些体验Spring,并且还有一些纯Java配置web-apps正在使用中.但是,这些通常基于一个安静的简单设置:

  • 服务/存储库的应用程序配置
  • 一个调度程序(和一些控制器)的调度程序配置
  • (可选)弹簧安全性以确保访问

对于我当前的项目,我需要具有不同配置的单独调度程序上下文.这不是基于XML的配置的问题,因为我们有一个独立于Dispatcher Configuration的专用ContextLoaderListener.但是使用java配置我不确定到目前为止我做的是否正常;)

这是一个常见的DispatcherConfig:

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

  @Override
  protected Class<?>[] getRootConfigClasses() {
    return new class[]{MyAppConfig.class};
  }

  @Override
  protected Class<?>[] getServletConfigClasses() {
    return new Class[]{MyDispatcherConfig.class};
  }

  @Override
  protected String[] getServletMappings() {
    return new String[]{"/mymapping/*"};
  }

  @Override
  protected String getServletName() {
    return "myservlet";
  }
}
Run Code Online (Sandbox Code Playgroud)

如上所述,我需要第二个(第三个,......)调度程序与另一个映射(和视图解析器).因此,我复制了配置并添加了两个getServletName()(否则两者都将被命名为'dispatcher',这将导致错误).第二个配置看起来像这样:

public class AnotherWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

  @Override
  protected Class<?>[] getRootConfigClasses() {
    return new class[]{MyAppConfig.class};
  }

  @Override
  protected Class<?>[] getServletConfigClasses() {
    return new Class[]{AnotherDispatcherConfig.class};
  }

  @Override
  protected String[] getServletMappings() {
    return …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-java-config

9
推荐指数
2
解决办法
1万
查看次数

你如何在不同的Spring上下文之间共享Spring bean?

我们有一个使用Spring BlazeDS集成的应用程序.到目前为止,我们刚刚使用Spring和Flex,它运行良好.我们现在需要添加一些Spring MVC控制器.Spring BlazeDS文档指出,执行此操作的方法是在web.xml中声明两个sperate上下文,如下所示:

<servlet>
    <servlet-name>flex</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>flex</servlet-name>
    <url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>spring-mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>/spring/*</url-pattern>
</servlet-mapping> 
Run Code Online (Sandbox Code Playgroud)

这是我的问题:在两种情况下都需要使用Spring bean - spring-mvc one和flex one.如何做到这一点 - 如何在一个上下文中声明一个bean(在xml中或通过组件扫描)并允许它与在其他上下文中声明的bean共享?谢谢 !

spring blazeds spring-mvc

4
推荐指数
1
解决办法
7711
查看次数

标签 统计

spring ×2

spring-mvc ×2

blazeds ×1

java ×1

spring-java-config ×1