为什么@ControllerAdvice @ExceptionHandlerAutowired bean为null?

时间:2019-07-18 09:53:01

标签: java spring-boot

查找Autowired Bean为空在我的ExceptionHandler方法中。请参见下面的代码。 在代码短语(3)中,bean为空。 在代码短语(1)中,toString功能正确。 我添加了一个吸气剂,发现吸气剂功能也可以正确运行,为什么?

@ControllerAdvice
@ToString
@Data
public class HandleExceptionController {
    private static final Logger LOG = LoggerFactory.getLogger(HandleExceptionController.class);


    private VehicleBookConfig vehicleBookConfig;


    private AccountService accountService;


    @Autowired
    public HandleExceptionController(VehicleBookConfig vehicleBookConfig, AccountService accountService) {
        this.vehicleBookConfig = vehicleBookConfig;
        this.accountService = accountService;
    }

    @ExceptionHandler
    @ResponseBody
    public final String handleAllException(Exception ex) {
        LOG.error("exception", ex);

        LOG.error("HandleExceptionController{}", this); // (1)

        LOG.error("vehicleBookConfig{}", this.getVehicleBookConfig()); // (2)
        LOG.error("accountService{}", accountService); // (3)
        return  "default exception";
    }

}

结果

2019-07-19 10:17:10.100 ERROR [consumer-demo,136b3d85cbcf9559,136b3d85cbcf9559,true] 16290 --- [io-18083-exec-3] c.t.d.c.c.HandleExceptionController      : HandleExceptionControllerHandleExceptionController(vehicleBookConfig=VehicleBookConfig(vehicleBook={1=VehicleBookConfig.VehicleBook(version=1, baseUrl=http://基础包的下载地址.com/pkg.zip, patchs=[VehicleBookConfig.VehicleBook.Patch(version=2, pkgUrl=http://补丁包的下载地址.com/patch_v2.zip), VehicleBookConfig.VehicleBook.Patch(version=3, pkgUrl=null)]), 2=VehicleBookConfig.VehicleBook(version=1, baseUrl=http://1基础包的下载地址.com/pkg.zip, patchs=[VehicleBookConfig.VehicleBook.Patch(version=2, pkgUrl=http://1补丁包的下载地址.com/patch_v2.zip), VehicleBookConfig.VehicleBook.Patch(version=3, pkgUrl=null)]), default=VehicleBookConfig.VehicleBook(version=1, baseUrl=http://3基础包的下载地址.com/pkg.zip, patchs=[VehicleBookConfig.VehicleBook.Patch(version=2, pkgUrl=http://3补丁包的下载地址.com/patch_v2.zip), VehicleBookConfig.VehicleBook.Patch(version=3, pkgUrl=null)])}), accountService=HardCodedTarget(type=AccountService, name=provider-demo, url=http://provider-demo))
2019-07-19 10:17:10.101 ERROR [consumer-demo,136b3d85cbcf9559,136b3d85cbcf9559,true] 16290 --- [io-18083-exec-3] c.t.d.c.c.HandleExceptionController      : vehicleBookConfigVehicleBookConfig(vehicleBook={1=VehicleBookConfig.VehicleBook(version=1, baseUrl=http://基础包的下载地址.com/pkg.zip, patchs=[VehicleBookConfig.VehicleBook.Patch(version=2, pkgUrl=http://补丁包的下载地址.com/patch_v2.zip), VehicleBookConfig.VehicleBook.Patch(version=3, pkgUrl=null)]), 2=VehicleBookConfig.VehicleBook(version=1, baseUrl=http://1基础包的下载地址.com/pkg.zip, patchs=[VehicleBookConfig.VehicleBook.Patch(version=2, pkgUrl=http://1补丁包的下载地址.com/patch_v2.zip), VehicleBookConfig.VehicleBook.Patch(version=3, pkgUrl=null)]), default=VehicleBookConfig.VehicleBook(version=1, baseUrl=http://3基础包的下载地址.com/pkg.zip, patchs=[VehicleBookConfig.VehicleBook.Patch(version=2, pkgUrl=http://3补丁包的下载地址.com/patch_v2.zip), VehicleBookConfig.VehicleBook.Patch(version=3, pkgUrl=null)])})
2019-07-19 10:17:10.102 ERROR [consumer-demo,136b3d85cbcf9559,136b3d85cbcf9559,true] 16290 --- [io-18083-exec-3] c.t.d.c.c.HandleExceptionController      : accountServicenull
2019-07-19 10:17:10.102 ERROR [consumer-demo,136b3d85cbcf9559,136b3d85cbcf9559,true] 16290 --- [io-18083-exec-3] c.t.d.c.c.HandleExceptionController      : response default exception
2019-07-19 10:17:10.126  INFO [consumer-demo,136b3d85cbcf9559,136b3d85cbcf9559,true] 16290 --- [io-18083-exec-3] o.s.c.t.sleuth.reporter.LogSpanReporter  : {"traceId":"136b3d85cbcf9559","id":"136b3d85cbcf9559","kind":"SERVER","name":"http:/test_exception","timestamp":1563502629988000,"duration":130232,"localEndpoint":{"serviceName":"consumer-demo","ipv4":"10.64.43.163","port":18083},"remoteEndpoint":{"ipv4":"127.0.0.1","port":55801},"tags":{"error":"test","http.host":"localhost","http.method":"POST","http.path":"/test_exception","http.status_code":"200","http.url":"http://localhost:18083/test_exception","localInterface":"consumer-demo.test_exception","mvc.controller.class":"Controller","mvc.controller.method":"testException","spring.instance_id":"10.64.43.163:consumer-demo:18083"}}

0 个答案:

没有答案