java - 在 Tomcat 服务器上的 Spring 应用程序中获取端口号和主机名

标签 java spring spring-mvc

我的应用程序是一个基于 Spring 框架 3.1.2 的 Web 应用程序,部署在 Apache tomcat 6 上。

我需要在应用程序(服务器)启动时获取正在运行的应用程序端口号主机名。这样我就可以在属性上覆盖它,并且需要其他 bean 初始化。

spring 是否提供任何选项来检索这些详细信息并在服务器启动时进行设置?..

最佳答案

查看之前提出的两个问题:Get the server port number from tomcat with out a requestI 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/

相关文章:

spring - 组件扫描在 Tomcat webapp 的 JAR 中找不到 @Component

java - 我在 CAS jar 中找不到 ProxyTicketReceptor

java - 如何在Spring-Boot中创建DefaultMessageListenerContainer?

java - 使用 java.util.Date 输入的 Postgres 上的时间戳超出范围错误

java - 从枚举访问父类(super class)变量

java - 列出单独合并每个单元格

spring-mvc - 在tiles和spring mvc中加载资源

java - 在发票文档上添加行时出现错误 R6025 - SAP DiApi

java - 不支持 Spring Rest POST Json RequestBody 内容类型

java - Spring beans - 验证是否正确初始化