IDEA解决quartz配置中ref变量报红问题
Posted YQS_Love
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA解决quartz配置中ref变量报红问题相关的知识,希望对你有一定的参考价值。
一、问题描述
在使用Quartz时,都需要在***_quartz.xm中配置触发条件以及具体的逻辑。在保证quartz.xml配置语法正确的情况下,task:scheduled
的ref
引用的变量会报红,并且还能看到Cannot resolve bean ‘name’这样的提示(如下图)。产生这样的情况只有一种可能,那就是Spring Application Context配置不正确,导致IDEA不能够识别这变量而报红。我们知道,Quartz一般都是结合Spring一起工作的。虽然,这样并不影响Quartz的工作,一旦你真的配置错了,或者引用的service找不到,图中这样的情况我们很难排查到底是哪个service配置错了。那么,下面我将介绍如何解决这个报红问题。
二、解决办法
办法一
点击左上角蓝色的字体“MVC appliction context”(如下图),然后选择 MVC applictin context,这个是你构建项目时自动构建好的,如果你选择了之后,quartz.xml还是报错,试一试其他几个选项,如果都还是不行,那么请看办法二。
办法二
你能看到这儿,说明办法一没能够解决你的问题,不要灰心,耐心的往下看。使用办法二时,不管你的项目以前有没有Application Configure Context配置,我们都重新建立一个新的。具体步骤如下:
打开Modules(File > Project Structure >Modules ),然后选择Modules,在展开项目,选中Spirng选项(如果你打开这个界面Modules的内容为空,那么请先学会配置Modules在看本教程),效果如下图:
在此页面中选择绿色的“+”(红色箭头方向);
然后为新的Context取一个新的名字,我的叫“Spring Application Context”(有的项目中可能有这个名字了,你要么删除原来的,要么起一个新的名字),然后将左边红色框全部选中,最后点击ok。
上个窗口关闭后,点击Apply,最后点击OK,此时,我们新的Application Context已经构建完成;
最后返回刚才quartz.xml页面,按照办法一的方法,选择我们新建立的Application Context,就发现quartz.xml不在报红,并且按住Ctrl+鼠标左键还能够导航类,不会在报Cannot reslove bean ‘name’的错误了。如下图:
三、注意事项
首先要确保**_quartz.xml的schema头引入要正确,其次是要保证quartz的语法正确,即使不正确,在Context正确的情况下,不会导致ref的值报红;
在打开Modules时要先配置好Modules,才有资格和机会配置Spring Context;
最后,由于小编能力有限,如文中有错误,还望指正,谢谢合作。
以上是关于IDEA解决quartz配置中ref变量报红问题的主要内容,如果未能解决你的问题,请参考以下文章
IDEA使用lombok配置, 解决pom.xml添加 provided报红问题
idea中maven工程导入坐标Dependencies报红解决方法