我想知道除了www.example.com文件之外,是否可以在环境路径中添加另一个属性文件application.properties。如果可以,如何指定新路径?这样您就可以使用Autowired Environment变量访问属性。目前在我的Java项目中,默认属性文件application.properties的路径为/soctrav/src. main. resources/application. properties
5lwkijsr1#
如果您想在没有命令行参数的情况下执行此操作,这将起到作用。
@SpringBootApplication @PropertySources({ @PropertySource("classpath:application.properties"), @PropertySource("classpath:anotherbunchof.properties") }) public class YourApplication{ }
cu6pst1q2#
可以使用命令行参数指定其他属性文件:
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
看一看应用程序属性文件Sping Boot 文档章节。
68bkxrlz3#
我找到了一个解决方案,它可以使这些属性在Spring环境中可用,并为在@Value("${my.custom.prop}")中使用它们提供支持
@Value("${my.custom.prop}")
@Bean protected PropertySourcesPlaceholderConfigurer createPropertyConfigurer(ConfigurableEnvironment environment) throws IOException { PropertySourcesPlaceholderConfigurer result = new PropertySourcesPlaceholderConfigurer(); FileUrlResource resource = new FileUrlResource(Paths.get("custom-props.properties").toString()); result.setLocation(resource); try (InputStream is = resource.getInputStream()) { Properties properties = new Properties(); properties.load(is); environment.getPropertySources().addFirst(new PropertiesPropertySource("customProperties", properties)); } return result; }
当您不在spring Boot 自动配置的环境中,但可以访问基本的spring特性时,这非常有用。
3条答案
按热度按时间5lwkijsr1#
如果您想在没有命令行参数的情况下执行此操作,这将起到作用。
cu6pst1q2#
可以使用命令行参数指定其他属性文件:
看一看应用程序属性文件Sping Boot 文档章节。
68bkxrlz3#
我找到了一个解决方案,它可以使这些属性在Spring环境中可用,并为在
@Value("${my.custom.prop}")
中使用它们提供支持当您不在spring Boot 自动配置的环境中,但可以访问基本的spring特性时,这非常有用。