Java Spring概要文件实现,仅更改*.properties

Java Spring概要文件实现,仅更改*.properties,java,spring,maven,profile,Java,Spring,Maven,Profile,我目前正在学习Spring,有一个多模块maven项目(父pom、下面的几个pom等)和尽可能多的上下文文件 我现在希望为两种不同的环境(A和B)使用两种不同的Spring配置文件 所有bean定义都将保持不变,但是从.properties文件中拉入的值将有所不同 如果我正确阅读了文档,我必须复制每个context.xml文件,并将其中一个文件设置为profileA,其中包含A的属性文件,另一个文件设置为profileB,其中包含B的属性文件 这是正确的实现吗?如果bean签名发生变化,这似乎是

我目前正在学习Spring,有一个多模块maven项目(父pom、下面的几个pom等)和尽可能多的上下文文件

我现在希望为两种不同的环境(A和B)使用两种不同的Spring配置文件

所有bean定义都将保持不变,但是从.properties文件中拉入的值将有所不同

如果我正确阅读了文档,我必须复制每个context.xml文件,并将其中一个文件设置为profileA,其中包含A的属性文件,另一个文件设置为profileB,其中包含B的属性文件

这是正确的实现吗?如果bean签名发生变化,这似乎是有道理的,但是如果它们完全相同,并且只有被拉入的属性值不同,那么似乎应该有一种更简单的方法。我想在运行时这样做,所以我只需要构建一次,这就是为什么我决定不使用maven概要文件


谢谢

无需复制您的context.xml。您需要的是根据提供的配置文件使spring具有不同的属性。这可以通过XML或Java配置轻松完成。如果您使用的是XML,那么在context.XML的末尾,您需要执行以下操作

<beans profile="dev">
     <context:property-placeholder location="classpath*:dev.properties"/>
</beans>
<beans profile="production">
     <context:property-placeholder location="classpath*:production.properties"/>
</beans>

如果您需要相应的Java配置,请告诉我,我将为您发布

启动应用程序时,需要提供正确的配置文件(一种方法是在命令行参数中添加-Dspring.profiles.active=“production”)


我还建议,如果您刚刚开始使用project,请查看Spring Boot,它大大简化了Spring配置(并以更简单的方式考虑您需要的内容)

Java config(无需配置);我假设我可以传入我想用作参数的配置文件,对吗?(-Dspring.profiles.active=“dev”)在本例中。@DaxDurax确切地说,配置文件是Spring的一种参数,可以通过多种方式设置。一个是-D,另一个是web.xml中的spring.profiles.activeproduction,在集成测试(或Java配置)中,您可以使用ActiveProfiles注释