之前可能会问这个问题,因为这是一个非常常见的练习,但我不确定要搜索什么。
我在一个Tomcat实例上托管了一个rest客户端应用程序,在另一个主机名上的另一个tomcat实例上托管了一个rest服务器。这很好用,但是目前我在java类中使用了硬编码的主机名。如何在其余客户端内对主机名进行参数化,以便在不重新启动托管其他客户端的tomcat的情况下允许将来进行更改?
答案 0 :(得分:1)
您可以采用多种解决方案,包括(但不限于):
如果您不想每次都查找该值,您可以使用缓存机制 - 可能一旦读取它,它只会在几秒钟/分钟后或多次调用后过期。
答案 1 :(得分:1)
传递环境变量甚至主机名的一种非常常见的技术是定义一个System变量,您可以使用 java.lang.System.getenv()或 java.lang.System读取该变量。 getProperty()如果您在应用程序启动时使用Maven在静态常量类中读取此变量,那么该值将在开头设置并保持到应用程序结束时其他涉及的技术,web。 xml,但要保持简单,这将有效。只需将var添加到环境中并阅读即可。
答案 2 :(得分:0)
您始终可以在客户端进程启动期间在参数中传递主机名,然后使用System.getProperty(" hostName")读取这些参数。