当前位置: 首页 > 知识库问答 >
问题:

在将spring-batch-admin集成到现有的spring boot中后,无法导入属性

祁景山
2023-03-14

我使用spring-batch和Spring-Boot完成了一个项目。

@Import({ ServletConfiguration.class, WebappConfiguration.class })

业务模式MySQL

和修改的application.properties:

server.servletPath=/*
spring.freemarker.checkTemplateLocation=false
ENVIRONMENT=mysql

这是副作用。除了java配置之外,我的应用程序还使用了applicationContext.xml。

  <context:property-placeholder
            location="file:///etc/location/services/myapp.properties"/>


    <bean name="configuration" class="com.mycompany.commons.configuration.factory.BeanAwareConfigurationFactory">

        <property name="serviceId" value="${serviceId}"/>
       ...
    </bean>
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'serviceId' in string value "${serviceId}"
    at 
...
  @PropertySource("file:///etc/location/services/myapp.properties")
    public class Application extends SpringBootServletInitializer {

        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
            System.out.printf("Started processor service app");
        }

共有1个答案

微生欣怡
2023-03-14

您可以重写spring-batch-admin缺省上下文加载配置。在src/main/resources/meta-inf/spring/batch/override/manager/中,可以放置env-context.xml文件,其中包含需要加载的资源配置。

下面是spring batch admin,可以将其用作起点,这样您就可以执行以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--  Use this to set additional properties on beans at run time -->
    <bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:/org/springframework/batch/admin/bootstrap/batch.properties</value>
                <value>classpath:batch-default.properties</value>
                <value>classpath:batch-${ENVIRONMENT:hsql}.properties</value>
                <!-- this line you can add-->
                <value>file:///etc/location/services/myapp.properties</value>  
            </list>
        </property>
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
        <property name="ignoreResourceNotFound" value="true" />
        <property name="ignoreUnresolvablePlaceholders" value="false" />
        <property name="order" value="1" />
    </bean>

</beans>
 类似资料:
  • 问题内容: 我有一个使用Spring Batch和Spring MVC的应用程序。我可以将Spring Batch Admin单独部署,并与我的应用程序使用的数据库一起使用,尽管我想将其集成到我自己的应用程序中,还可能会修改其中一些视图。 有没有简单的方法可以做到这一点,还是我必须将其分叉然后从那里去? 问题答案: 根据这个线程显然有一个简单的方法; 在以下位置为Batch Admin定义Disp

  • 我有一个Spring批处理项目,它使用基于注释的配置,并且是一个工作代码本身。现在我想将它与一个新的Spring Batch管理项目集成。我尝试了一些博客中可用/回答的解决方案,比如将批处理项目的依赖项添加到批处理管理项目中,并修改META-INF/spring/batch/servlet/override/context-config.xml文件以指向批处理项目配置文件。即。job包存在于Spr

  • 我正在使用spring batch来解析我的文件。我想使用spring批管理的工作检查,工作启动,工作执行。Spring Batch Admin使用在启动时初始化的HSQLDB数据库。我的spring batch项目使用它自己的数据库,其中包括用于spring batch的适当表: batch_job_instance batch_job_params batch_job_execution ba

  • 根据文档,spring batch admin非常容易嵌入到现有的应用程序中。简单地复制web.xml和index.jsp,然后添加所需的依赖项就足以使其工作。 但是如果我想在一个现有的spring boot项目中使用它,它会变得更糟。根据这个例子,这个配置有点蹩脚,但是它可以工作。直到我尝试在我的configuriton bean中使用注释。然后我得到以下异常。 我的配置很简单我有两个配置bea

  • 处理这种情况的最佳方法是什么?理想情况下,SBA admin只使用已经定义的spring组件。删除@enableBatchAdmin并在我的配置类中处理SBA资源导入? 更新:我遵循了这里讨论的方法,我看到了系统启动和UI显示。现在我正在尝试加载作业xml文件。我已经为生成spring批处理管理实体生成了一个java配置。 现在,当我加载作业xml文件时,我看到错误,它无法找到java配置中定义的

  • 注意:该项目正在移至 Spring Attic,不建议用于新项目。 建议使用 Spring Cloud Data Flow 替代,以管理和监视以后的 Spring Batch 作业。可以在此处阅读有关迁移到 Spring Cloud Data Flow 的更多信息。 Spring Batch Admin 是基于Spring Batch应用的监控管理工具,使用用Spring Batch Admin,通过web控制台监控和操作Job。