查找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"}}