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

如何在Spring中导入共享jar中的属性文件?

储毅
2023-03-14

我想创建一个共享项目jar,它有一些服务。这些服务应该使用属性文件。

理想情况下,当我将共享jar作为一个依赖项添加到其他项目时,我只想在后面使用服务。我不想做任何进一步的配置,比如导入共享属性文件。

在共享jar中,我想使用spring注入属性。但我怎么能这样做呢?

项目-commons/src/main/java:

@Service
public class MyService {
    @Value("${property.value}") private String value;

    public String getValue() {
        return value;
    }
}

项目-公用/src/main/resources/application.properties:

property.value=test
@Component
public class SoapService {
    @Autowired
    private MyService service;

    //should return "test"
    public String value() {
        return service.getValue();
    }
}
Illegal character in path at index 1: ${property.value}

因此,未解析propertyfile。但是我如何告诉spring在使用合适的服务时自动使用它呢?

共有1个答案

柳钟展
2023-03-14

感谢Hank Lapidez的评论,添加以下语句修复了该问题:

@Configuration
@PropertySource("classpath:appdefault.properties")
public CommonConfig {
    @Bean
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}
 类似资料:
  • 我使用Spring Security和spring MVC。Am在未经身份验证的请求中保留会话中的数据属性(安全性:spring security中无)。我尝试打印会话id。之后,我登录到应用程序。在此创建新会话。我尝试打印会话id。两者都不同。但是当我访问会话属性中的数据时。它是存在的。在我的理解中,由于新会话是在登录后创建的,数据应该丢失,还是spring正在共享会话属性?下面是代码。 在sp

  • 对于上面的导入语句,我想知道协议如何知道在哪里可以找到该原型文件,因为它显然不在我的的某个地方。 我有一个共享的。proto在某些包中,可以被许多项目引用,因此我无法将其放在某个项目级别以共享相同的protp\u路径。我的问题是如何像导入

  • 问题内容: 如何在Eclipse中导入jar 问题答案: 你可以通过右键单击Project→Build Path→Configure Build Path在Eclipse中添加一个jar。在“库”选项卡下,单击“添加jar”或“添加外部JAR”,然后提供jar。 上述解决方案显然是一种“快速”解决方案。但是,如果你正在从事一个需要将文件提交到源代码控制存储库的项目,我建议将Jar文件添加到源代码控

  • 如何加载放置在可执行jar文件的资源文件夹中的属性文件。在这里,我的应用程序本身就是一个jar,它自己执行。它需要在运行时根据代码中提到的路径找到这个属性文件(放在资源文件夹下)。我用过以下两种方法,但都没用。这里的重点是,当我在eclipse中执行时,这两个选项都可以正常工作,但当我将其打包到可执行jar中时,这两个选项都不起作用。它抛出NullPointerException。我在这里看到的唯

  • 我无法加载位于jar (project.service.jar)中的db.properties,它被war文件(project-web.war)引用。输出war将jar放在we b-INF/lib/project . service . jar中。rest war也使用jar,它使用jar中的一些服务。当战争开始时,我无法加载位于服务的jar文件中的db.properties。prop文件具有要在

  • 问题内容: 在我的目标文件夹中,有2个文件夹,lib和conf。所有的属性文件都放在conf文件夹中,而jars放在lib foulder中。 在Spring Boot之前,我们在spring.xml中使用以下配置来使用@value 但是在spring启动中,我不知道如何在Java代码中执行相同的操作。 我尝试了以下操作,但是没有用 问题答案: 问题的标题和描述让我有些困惑。希望我不会再让你对我的