我正在编写一个Spring应用程序。这个应用程序通过MessageQueues与一个主框架对话。
因此,为了与那个MainFrame对话,我们提供了一个java (它有与MessageQueues对话的代码)。让我们称它为代理jar。
我们必须使用从上面提到的代理jar编写的操作。在我们的应用程序中,我们不编写任何代码来读写MessageQueues (IBM ),这是由代理jar及其依赖的运行时jar完成的。
因此,问题来了,这个代理jar的编码方式是在类路径中查找一个名为“commcfg.properties”的文件(希望名称完全相同)。实际上,代理jar使用另一个依赖jar (让我们调用运行时jar),它从commcfg.properties读取队列详细信息,并从消息队列读取/写入队列。
commcfg.properties具有MessageQueue和主机的值以及这些队列的端口。在短时间排队的细节。
所以麻烦的是,这些MessageQueue细节在不同的环境中是不同的。我需要根据环境使用commcfg.properties
到目前为止我尝试解决这个问题。
希望我很清楚,请帮帮我..。
发布于 2017-06-09 19:22:05
在春季启动时,您可以使用Java注释@PropertySource注册属性文件。
@SpringBootApplication
@PropertySource("classpath:commcfg.properties")
public class ApplicationConfig
{
public static void main(String args[])
{
SpringApplication.run(ApplicationConfig.class);
}}
并让commcfg.properties文件包含DEV环境的详细信息。
messageQueue.name=myMessageQueue
messageQueue.host=host
messageQueue.port=4040现在构建jar文件,然后得到yourjar.jar
现在用默认值在DEV环境中运行它。
java -jar yourjar.jar 在QA环境中运行它,覆盖配置文件中的默认值
java -jar --messageQueue.name=diffrenthost --messageQueue.host=diffrenthost --messsageQueue.port=diffrentport yourjar.jar 通过这种方式,您可以重写默认值。我希望这能帮到你
发布于 2017-08-17 09:57:01
您可以将属性文件放在spring的相同路径上,配置项可以覆盖jar中的属性。
https://stackoverflow.com/questions/43519100
复制相似问题