有没有办法在 spring 引导中 运行 madvoc?

Is there a way how to run madvoc inside of spring boot?

有没有办法在 Spring 引导中 运行 Madvoc 网络微框架?

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

这对 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' 代码中看到打印消息,所以肯定是 运行ning.

public class AppWebApplication extends WebApplication {

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

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

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

}

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

请检查 Servlets 3 的工作示例 here

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

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

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

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