我的应用程序是一个基于 Spring 框架 3.1.2
的 Web 应用程序,部署在 Apache tomcat 6
上。
我需要在应用程序(服务器)启动时获取正在运行的应用程序端口号 和主机名。这样我就可以在属性上覆盖它,并且需要其他 bean 初始化。
spring 是否提供任何选项来检索这些详细信息并在服务器启动时进行设置?..
最佳答案
查看之前提出的两个问题:Get the server port number from tomcat with out a request和 I need to know the HTTP and HTTPS port my java webapp is running on webapp startup .在那里您将看到如何从连接器获取端口,连接器也有 getDomain 方法,可以为您提供主机名。
因为您知道如何在没有 spring 的情况下获取,您可以拥有一个获取这些详细信息的 bean,并为需要这些实例化详细信息的其他 bean 提供它们。有几种方法可以做到这一点:
1) 创建 Spring 工厂 bean,它将获取端口、主机名并实例化你想要的 bean
2) 有单独的 bean 为你保存这些细节,你用那个 bean 构造另一个 bean
3) 您使用端口和域覆盖您的应用程序详细信息,并且在实例化需要它们的 bean 时有一个 init 方法可以为您的新 bean 读取它们
关于java - 在 Tomcat 服务器上的 Spring 应用程序中获取端口号和主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929071/