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

Spring Boot继承应用程序。依赖项中的属性

段干宏硕
2023-03-14

假设我有5个Spring Boot项目。他们都对Spring Boot项目6有Maven依赖,该项目有一些共享/公共类。5个独立项目在每个应用程序中都分配了许多公共属性。属性,我想对其进行抽象并将其移动到公共项目。总的来说是这样的:

                                            Project 1 (app.properties)
Common Project (app-common.properties) <--- Project 2 (app.properties)
                                            Project 3 (app.properties)...

目前的问题是app-common.properties在project1.jar/lib/common-project.jarapp-common.properties启动时显然不加载。

有没有一种方法可以从依赖项扩展它?

CommonProject主类如下所示:

@SpringBootApplication
public class CommonApplication extends SpringBootServletInitializer {

    protected static void run(SpringApplication application, String[] args) {
        application.run(args);
    }
}

Project1主类如下所示:

public class Project1 extends CommonApplication {

    public static void main(String[] args) {
        run(new SpringApplication(Project1.class), args);
    }
}

共有2个答案

常永怡
2023-03-14

目前spring boot不提供继承属性。

spring启动应用程序支持多个属性源,但不支持xxx的约定(读取:内置逻辑)。属性是解析最后一个xxx。属性如果有多个属性文件具有相同的文件名。

有很多解决方案。

一种可能的解决方案是

  1. 将自定义配置文件应用于依赖项
  2. 在应用程序自定义配置文件中包括可继承的设置。属性
  3. 设置从属Spring。配置文件。在应用程序[-{profile}中包含=customprofile。属性(注意:如果在应用程序属性中设置,则适用于所有配置文件)

另一种可能的解决方案是为属性使用唯一的自定义文件名。

  • 即不使用默认的application.properties,而是使用common.properties
殷轶
2023-03-14

使用Property tySource注释并为您的应用提供两个来源:

@PropertySources({
        @PropertySource("classpath:app-common.properties"),
        @PropertySource("classpath:app.properties")
    })

更多细节可以在那里找到https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

 类似资料:
  • 问题内容: 设我有5个Spring Boot项目。它们都对带有某些共享/公共类的Spring Boot项目No.6具有Maven依赖性。5个独立项目在每个application.properties中分配了很多通用属性,我想对其进行抽象并将其移至通用项目。总体看起来像这样: 当前的问题是app-common.properties在project1.jar / lib / common-projec

  • 在angular2中,假设我有一个类和一个类,它们具有相同的属性/成员和方法。如何初始化类? 服务 其中一个子类要扩展类:

  • 我有一个maven工件(),它依赖于某个工件()。 有一个父pom,其中包含某些其他依赖项。 是否可以使用这些依赖项,而无需在其自身pom的依赖项部分中明确添加它们?

  • 我对整个Java生态系统还是个新手,我已经花了几个小时的时间来获得一个外部依赖者来与Intellij一起工作。我使用一个简单的Java应用程序,它包含一个,其中包含: 包含对com.google.guava的依赖项(必需),如下所示: 每当我尝试调试时,都会得到无法加载的错误。我还尝试克隆https://github.com/tfnico/guava-example(将Java版本更新为受支持的版

  • 我很难理解WPF中的依赖属性,可能是因为我要找的用例非常具体,没有很好的文档化。 我有一个自定义控件,看起来像这样(请忽略所有可怕的代码,这是暂时的!): 我这样称呼它在我的主窗口内: 我只想在主窗口中的自定义控件调用中说: (其中fillPercent是另一个脚本中不需要担心的内容)。该控件将被展开,因此需要保持为自定义控件。我明白我可能需要依赖属性,但在尝试了许多不同的方法后,我无法弄清楚如何

  • 我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?