Spring setenv.sh在Tomcat中的具体用途是什么?
我搜索了很多,但找不到任何有用的信息: 在Tomcat中使用setenv.sh的确切用途是什么? 假设我们有一个RESTAPI(使用JavaEE或Spring构建),它使用一些参数/变量,如AWS凭据、数据库凭据等 如果我们使用多个实例和不同的参数/变量,那么使用我上面提到的环境变量参数化应用程序,并将它们的值放入setenv.sh上每个Tomcat实例的env vars中有意义吗 或者setenv.sh不适合这样的事情Spring setenv.sh在Tomcat中的具体用途是什么?,spring,tomcat,credentials,Spring,Tomcat,Credentials,我搜索了很多,但找不到任何有用的信息: 在Tomcat中使用setenv.sh的确切用途是什么? 假设我们有一个RESTAPI(使用JavaEE或Spring构建),它使用一些参数/变量,如AWS凭据、数据库凭据等 如果我们使用多个实例和不同的参数/变量,那么使用我上面提到的环境变量参数化应用程序,并将它们的值放入setenv.sh上每个Tomcat实例的env vars中有意义吗 或者setenv.sh不适合这样的事情 提前感谢我只见过它用于指定CATALINA\u OPTS,但我注意到文件提
提前感谢我只见过它用于指定
CATALINA\u OPTS
,但我注意到文件提到使用它设置JRE\u HOME
和JAVA\u HOME
在高级配置下也有状态-多个Tomcat实例:
在许多情况下,最好有一份
同一平台上多个用户共享的Tomcat二进制分布
服务器。为了实现这一点,您可以设置CATALINA_底座
环境变量添加到包含您的应用程序的文件的目录
“个人”Tomcat实例
因此,我想答案是可以为每个应用程序创建一个
setenv
文件,并可能用于存储凭据,但我不认为它通常用于此目的。~/Programs/apache-tomcat-9.0.7/bin/setenv.sh
export CATALINA_OPTS=“$CATALINA_OPTS-DENV_TARGET=prod-DMy_Env_Var1=Whatever-DMy_Env_Var2=capitaloneisthest”
因此,setenv.sh中上述“”之间的所有内容都被设置为Tomcat中应用程序的环境变量。要检索/使用这些环境变量,请在Java(Spring)应用程序中使用:
Ex1)字符串mywhather=java.lang.System.getProperties().getProperty(“My_Env_Var1”);
Ex2)字符串env=System.getProperties().getProperty(“My_env_Var2”)
要更改环境变量(例如,在编写单元测试时),请执行以下操作:
System.setProperty(“My_Env_Var1”、“newEnv”)