1

有没有办法在 Spring Boot 中运行Madvoc Web 微框架?

Spring Boot 允许集成其他技术(我们试验了在 Spring Boot 下运行的 Apache Wicket)。

这对JODD madvoc 来说可能吗?有没有合适的配置示例?

编辑#1 我尝试为 Madvoc 添加 Spring Boot servlet 过滤器配置,但看不到像这样的 Madvoc init 输出:

INFO jodd.madvoc.Madvoc - Madvoc starting... 
INFO jodd.madvoc.Madvoc - Default Madvoc web application created.

这就是我的初始化代码的样子......

@Configuration
public class MadvocInitializer implements ServletContextInitializer {

    @Override
    public void onStartup(ServletContext sc) throws ServletException {
        FilterRegistration filter = sc.addFilter("madvoc", MadvocServletFilter.class);
        filter.setInitParameter("madvoc.webapp","app.web.jodd.AppWebApplication");

        EnumSet NON_ASYNC_DISPATCHER_TYPES =
                EnumSet.of(DispatcherType.FORWARD, DispatcherType.INCLUDE,DispatcherType.REQUEST);

        filter.addMappingForUrlPatterns(NON_ASYNC_DISPATCHER_TYPES, true, "/jodd/*");

        System.out.println("+++ MADVOC FILTER");
    }
}

编辑 #2 过滤器配置引用“AppWebApplication”,如下所示。我可以看到来自“registerMadvocComponents”代码的打印消息,所以肯定有东西在运行。

public class AppWebApplication extends WebApplication {

    @Override
    public void registerMadvocComponents() {
        super.registerMadvocComponents();

        System.out.println("+++ MADVOC FILTER - configuration");

        registerComponent(MadvocConfig.class);
       // registerComponent(MyRewriter.class);
    }

}
4

1 回答 1

0

好的,简而言之,我们有 Servlets 3.x 注册 Madvoc 过滤器的方式,它将注册所有内容。

请在此处查看 Servlets 3 的工作示例。

您的代码看起来不错,但您可以检查以下内容:

  1. 也许 Springboot 只是简单地隐藏了 Jodd 的日志,而您没有看到它正在工作。

  2. 如果您过滤到/jodd/*:) 默认情况下,操作将被映射到 eg/index.html而不是/jodd/index.html. 因此,您将无法运行操作。要对此进行测试,请将过滤器映射到根 ( /*) 并查看您现在是否可以执行您的 Madvoc 操作 :)

将 Spring 注入 Madvoc 动作 - 检查类PetiteMadvocController。这个Petite在 madvoc 中注入了 bean(是的,无论如何谁需要 Spring:)。基本上,您只需要在 Springs 应用程序上下文中创建操作类。

于 2016-03-11T11:07:15.837 回答