背景
最近同事在增加全局日志注解时候,从别的服务直接复制代码,然后启动程序,按照这样来说,如果别的服务没有问题,这个应该也是没有问题,但是事实不是你想的那样
问题
操作:
springboot项目添加一个公共的日志配置类
问题:
xxl-job报错,直接找不到对应的执行器了
排查:
-
检查xxl-job没有任何问题
-
回退代码,xxl-job可以使用
-
那么问题只能是修改的部分了
仔细阅读修改部分
springboot项目添加@ComponentScan注解,而且只扫描了一个类,问题就是在这
@ComponentScan注解:
-
用于指定包的扫描路径。用于代替spring的xml配置文件中的<context:componet-scan base-package=""/>标签
-
springboot 默认是扫描启动类同级目录及子目录下面的所有组件,但是如果启动类添加@ComponentScan注解,只扫描这个注解对应的组件
结论:
如果添加@ComponentScan注解,需要指定扫描的包路径
注意:
@ComponentScan注解的value及basePackageClasses是可以同时添加的,不用分开的
结论:
最后写法如下:
建议:
对于程序员来说,复制别人代码,一定要思考为什么这样写的,不然你会一直在坑里,进步缓慢