baomidou / mybatis-plus

An powerful enhanced toolkit of MyBatis for simplify development
https://baomidou.com
Apache License 2.0
16.12k stars 4.26k forks source link

小白咨询:linux服务器中tomcat怎么实现--mpw.key配置 #6299

Closed chenrongda closed 2 weeks ago

chenrongda commented 2 weeks ago

请详细描述需要增加的功能 // Jar 启动参数示例(在IDEA中设置Program arguments,或在服务器上设置为启动环境变量)

如题,配置安全中,我在服务器上用的是tomcat,不是直接用java -jar,请问大牛们tomcat的话如何配置?

VampireAchao commented 2 weeks ago

在运行 Java 应用时,可以通过命令行参数来传递 Spring 配置参数。对于使用嵌入式 Tomcat 的 Spring Boot 应用,可以通过 java -jar 命令行参数来传递这些配置参数。例如,假设我们有一个 Spring Boot 应用的 JAR 文件 myapp.jar,我们可以通过以下方式来传递 Spring 配置参数:

java -jar myapp.jar --server.port=8081 --spring.datasource.url=jdbc:mysql://localhost:3306/mydb

这种方式可以直接传递多个参数,并且参数会覆盖 application.propertiesapplication.yml 文件中的默认配置。

在传统的 Tomcat 中传递 Spring 参数

如果你使用的是传统的 Tomcat 服务器(不是嵌入式的),你可以通过以下方式传递 Spring 配置参数:

  1. CATALINA_OPTS 环境变量中设置参数

    你可以在 Tomcat 的环境变量 CATALINA_OPTS 中添加 Spring 配置参数。例如,编辑 setenv.sh(Linux)或 setenv.bat(Windows)文件,添加以下内容:

    # setenv.sh (Linux)
    export CATALINA_OPTS="$CATALINA_OPTS -Dserver.port=8081 -Dspring.datasource.url=jdbc:mysql://localhost:3306/mydb"
    rem setenv.bat (Windows)
    set CATALINA_OPTS=%CATALINA_OPTS% -Dserver.port=8081 -Dspring.datasource.url=jdbc:mysql://localhost:3306/mydb
  2. 通过 context.xml 文件传递参数

    你也可以在 Tomcat 的 context.xml 文件中添加参数配置。编辑 conf/context.xml 文件,添加以下内容:

    <Context>
       <Parameter name="server.port" value="8081" override="false"/>
       <Parameter name="spring.datasource.url" value="jdbc:mysql://localhost:3306/mydb" override="false"/>
    </Context>
  3. 通过 web.xml 文件传递参数

    如果你的 Spring 应用部署在传统的 Tomcat 中,你也可以在 web.xml 文件中添加上下文参数:

    <context-param>
       <param-name>server.port</param-name>
       <param-value>8081</param-value>
    </context-param>
    <context-param>
       <param-name>spring.datasource.url</param-name>
       <param-value>jdbc:mysql://localhost:3306/mydb</param-value>
    </context-param>

示例案例

假设我们有一个简单的 Spring Boot 应用 myapp.jar,并且我们希望通过命令行参数传递端口和数据源 URL 配置:

java -jar myapp.jar --server.port=8081 --spring.datasource.url=jdbc:mysql://localhost:3306/mydb

对于传统的 Tomcat,假设我们已经在 CATALINA_HOME 环境变量中设置了 Tomcat 的安装目录,并且我们的 Spring 应用已经打包为 myapp.war 部署在 Tomcat 中。我们可以在 setenv.sh(Linux)或 setenv.bat(Windows)文件中添加如下配置:

# setenv.sh (Linux)
export CATALINA_OPTS="$CATALINA_OPTS -Dserver.port=8081 -Dspring.datasource.url=jdbc:mysql://localhost:3306/mydb"
rem setenv.bat (Windows)
set CATALINA_OPTS=%CATALINA_OPTS% -Dserver.port=8081 -Dspring.datasource.url=jdbc:mysql://localhost:3306/mydb

通过这种方式,无论是在嵌入式 Tomcat 还是传统的 Tomcat 环境中,我们都可以灵活地传递 Spring 配置参数。