Java 如何对所有spring模块使用相同的环境变量

Java 如何对所有spring模块使用相同的环境变量,java,spring,environment-variables,Java,Spring,Environment Variables,我有3个spring模块,它们有自己的配置文件。 e、 g.SP1、SP2、SP3。 SP3模块使用初始化所有3个模块的上下文 private static AnnotationConfigApplicationContext validatorContext = new AnnotationConfigApplicationContext(SP3.class, SP2.class, SP1.class); SP3具有仅为SP3加载的属性文件。我想在其他模块中也使用SP3环境变量。 因此,如

我有3个spring模块,它们有自己的配置文件。 e、 g.SP1、SP2、SP3。 SP3模块使用初始化所有3个模块的上下文

private static AnnotationConfigApplicationContext  validatorContext = new AnnotationConfigApplicationContext(SP3.class, SP2.class, SP1.class);
SP3具有仅为SP3加载的属性文件。我想在其他模块中也使用SP3环境变量。 因此,如果属性加载一次,则其属性将被其他模块使用

我的另一个模块,即SP2配置文件具有以下代码:

@Autowired
    @Bean
    public ValidationConfigurationLoader validationConfigurationLoader(final Environment environment){
        ValidationConfigurationLoader validationConfigurationLoader = new ValidationConfigurationLoader();
        validationConfigurationLoader.setValidationConfigurationFilePath(environment.getProperty("referenceccda.configFile"));
        validationConfigurationLoader.setUnmarshaller(castorMarshaller());
        return validationConfigurationLoader;
    }
注意:它不是为SP1和SP2模块设置变量,而是为SP3设置变量,因为它具有属性文件。 但当我设置Env时。eclipse中的变量,然后它就可以工作了


如果S3的属性真的是共享的,并且有与之相关的自定义代码,那么也许可以将它们放在一个单独的模块中,只加载属性,其他三个属性都可以依赖它?实际上,Env变量正在SP2和SP1中使用,我在SP3模块下的属性文件中设置了这些变量,并在SP3中初始化了上下文。现在,这些变量必须在SP2和SP1中自动连接。如果属性是在spring上下文中设置的,那么我希望它们在您的模块所在的应用程序中可用(并且可用于所有模块)。但是属性不是环境变量。您能否给出一个您希望设置但无法使用的属性的示例?大概
referenceccda.configFile
就是一个示例。但是,这是如何进入spring上下文(application.properties文件或其他更自定义的文件)的呢?您说要“自动连接”属性-如果使用@Value访问该属性,是否有效?在eclipse中(如上所示),我设置了-->referencecda.configFile变量,所有变量都可用于每个模块。但通过属性文件,它们不是。