windows 环境下配置tomcat启动参数

前言

我的项目是一个springMVC项目,spring版本为4.3.9。在开发中遇到一个需求,就是根据启动参数的不同,注入指定的AOP类。

代码

我的AOP类为如下,加上@Profile(“open”)指定启动参数传入“open",即 在tomcat启动时输入命令
-Dspring.profiles.active=open。
若不知@Profile注解,请自行百度了解。

@Aspect
@Component
@Profile("open")
public class CastTimeLogAspect {
    private static final Logger LOGGER = LoggerFactory.getLogger(CastTimeLogAspect.class);

    public static ConcurrentHashMap<String, MapValue> map = new ConcurrentHashMap();

    static {
        LOGGER.info("注解通知成功启动");
        new Thread(new RemoveMapTask()).start();
    }

	@Before("within(main.bridge..*) && @annotation(trv)")
    public void castTimeLogBefore(JoinPoint jp, CastTimeLog trv) throws IOException, ServletException {
        HttpServletRequest request = ((ServletRequestAttributes)
            RequestContextHolder.getRequestAttributes()).getRequest();
           // do something
    }
}

问题来了,在windows我们该如何传入我们的参数。

1.在cmd模式下输入

在这里插入图片描述
输入 startup.bat -Dspring.profiles.active=open

但是经过测试无效。于是修改tomcat安装目录下的catalina.bat文件。用编辑器打开后,输入
set “JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=open”

2.修改catalina.bat文件

在这里插入图片描述
保存之后,直接双击startup.bat 即可。日志打印时可以看到输入
在这里插入图片描述

静态代码块的日志也将正确输出,表示该类已经注入spring容器。
在这里插入图片描述


版权声明:本文为qq_27576109原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。