有没有办法在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);
}
}
答案 0 :(得分:0)
好的,简而言之,我们有Servlets 3.x注册Madvoc过滤器的方式,它将注册所有内容。
请查看Servlets 3 here的工作示例。
您的代码看起来不错,但您可以检查以下内容:
也许Springboot只是隐藏了Jodd的日志,而你却没有看到它正在运行。
如果您过滤到/jodd/*
可能会出现问题:)默认情况下,操作将映射到例如/index.html
代替/jodd/index.html
。因此,您将无法运行操作。要对此进行测试,请将过滤器映射到root(/*
)并查看您是否可以立即访问您的Madvoc操作:)
将Spring注入Madvoc操作 - 检查课程PetiteMadvocController
。这个人在madvoc注入了Petite
豆子(是的,无论如何都需要Spring :)。基本上,您只需要在Springs应用程序上下文中创建动作类。