有没有办法在 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。
您的代码看起来不错,但您可以检查以下内容:
也许 Springboot 只是隐藏了 Jodd 的日志,而您没有看到它正在工作。
如果过滤到 /jodd/*
可能会出现问题:) 默认情况下,操作将映射到例如/index.html
而不是 /jodd/index.html
。因此,您将无法 运行 操作。要对此进行测试,请将过滤器映射到根 (/*
) 并查看您现在是否可以访问您的 Madvoc 操作:)
要将 Spring 注入 Madvoc 操作 - 检查 class PetiteMadvocController
。这个在 madvoc 中注入 Petite
个 bean(是的,无论如何谁需要 Spring:)。基本上,您只需要在 Springs 应用程序上下文中创建操作 class。
有没有办法在 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。
您的代码看起来不错,但您可以检查以下内容:
也许 Springboot 只是隐藏了 Jodd 的日志,而您没有看到它正在工作。
如果过滤到
/jodd/*
可能会出现问题:) 默认情况下,操作将映射到例如/index.html
而不是/jodd/index.html
。因此,您将无法 运行 操作。要对此进行测试,请将过滤器映射到根 (/*
) 并查看您现在是否可以访问您的 Madvoc 操作:)
要将 Spring 注入 Madvoc 操作 - 检查 class PetiteMadvocController
。这个在 madvoc 中注入 Petite
个 bean(是的,无论如何谁需要 Spring:)。基本上,您只需要在 Springs 应用程序上下文中创建操作 class。