有没有办法覆盖spring-batch-admin-manager中的/META-INF/spring/batch/servlet/manager/manager-context.xml?我想删除主页和文件菜单(它们是标准菜单)。请在下面找到导航菜单栏的屏幕截图。
我尝试在我的 webapp 的 src/main/resources/META-INF/spring/batch/override 文件夹下创建 manager-context.xml 的副本,并注释掉以下代码行。
<bean class="org.springframework.batch.admin.web.HomeMenu" parent="baseMenu"/>
<bean class="org.springframework.batch.admin.web.FilesMenu" parent="baseMenu"/>
但是,它会创建重复的菜单,因为 spring-batch-admin-manager.jar 中的原始 manager-context.xml 首先加载,然后我的应用程序特定 manager-context.xml 稍后加载。
我还尝试通过仅从我的 webapp 加载 manager-context.xml 来更改 webapp 上下文的初始化方式。这是我的 webapp-context.xml。我在此处添加了注释以解释我如何尝试仅从我的 web 应用程序加载 manager-context.xml。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<import resource="classpath*:/META-INF/spring/batch/servlet/resources/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/bootstrap/**/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/override/**/*.xml" />
<!-- Instead of loading manager-context from spring-batch-admin-manager.jar,
the following line is commented out -->
<!-- <import resource="classpath*:/META-INF/spring/batch/servlet/manager/*.xml" /> -->
<!-- Load the manager-context.xml from my web application -->
<import resource="classpath*:/servlet/manager/manager-context.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/manager/contoller-context.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/manager/integration-context.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/override/*.xml" />
<!-- Override the standard location for spring batch admin resources -->
<bean id="resourceService" class="org.springframework.batch.admin.web.resources.DefaultResourceService">
<property name="servletPath" value="/admin-console" />
</bean>
<bean id="parameterUnpackerFilter" class="org.springframework.batch.admin.web.filter.ParameterUnpackerFilter">
<property name="prefix" value="unpack_"/>
<property name="putEmptyParamsInPath" value="true"/>
</bean>
</beans>
不幸的是,该应用程序无法加载任何连接到 Jobs and Executions 菜单的自由标记模板(*.ftl 文件),因此我无法使用任何菜单。我所说的 ftl 文件位于 spring-batch-admin-manager 源代码中的 src/main/resources/org/springframework/batch/admin/web/manager 文件夹下。