Selama proses pengembangan web Java, pasti akan ada beberapa pengecualian sistem atau pengecualian buatan. Bagaimana cara menanganinya dengan elegan dalam proyek springboot yang tenang?
Analisis: Dalam proyek Springboot bergaya REST, objek tubuh yang dikembalikan adalah semua objek tubuh, sehingga lebih tepat untuk menentukan kelas dasar hasil yang berisi status, pesan, data (hasil pengembalian dari metode permintaan).
Ini akan lebih merepotkan jika Anda mendefinisikan beberapa kelas pengecualian untuk diproses. Misalnya, StudentNotExistSexception dan StudentExistSException. . . dll. dan kode kesalahan tidak dapat ditentukan, yang tidak nyaman untuk proses front-end sesuai dengan kode kesalahan.
Catatan: Aliran pemrosesan model MVC General Spring adalah sebagai berikut
Lapisan Pengontrol Umum-> Layer Layanan-> Lapisan DAO.
1. Lapisan pengontrol, menerima permintaan, melakukan paging, dan merangkum objek DTO.
2. Lapisan layanan, logika eksekusi, konkurensi kontrol, dan transaksi.
3. Dao Layer, berinteraksi dengan database.
Gunakan tabel siswa untuk menggambarkan pemrosesan:
1. Tentukan kesalahan umum enum studentExceptionenum
public enum studentExceptioneNum {student_not_exist (1004, "siswa tidak ada, mohon konfirmasi sebelum memeriksa"), student_exist (1005, "Student sudah ada"); status bilangan bulat pribadi; komentar string pribadi; StudentExceptionEnum (status integer, komentar string) {this.status = status; ini.comment = komentar; } public integer getStatus () {status return; } public void setStatus (status integer) {this.status = status; } public string getComment () {return comment; } public void setComment (String Comment) {this.comment = Comment; }}2 Tentukan Kelas Hasil Pemrosesan Dasar Permintaan Kelas
@DataPublic Class RequestResult {Private String Message; status bilangan bulat pribadi; data objek pribadi; Public RevandResult (pesan string, status integer, data objek) {this.message = pesan; this.status = status; this.data = data; } public requestResult (string message, status integer) {this.message = pesan; this.status = status; } public requestResult (string message, status integer) {this.message = pesan; this.status = status; } public requestResult (String Message, StudentExceptioneNum RequestExceptioneNum) {this.message = pesan; this.status = requestExceptioneNum.getStatus (); } public requestResult () {status = 200; pesan = "ok"; } public static revandResult OK (data objek) {requestResult hasil = new requestResult (); result.setData (data); hasil pengembalian; } public static revandResult Exception (string pesan, status integer) {return new requestResult (pesan, status); } public static revandResult Exception (String Message, StudentExceptioneNum RequestExceptionEnum) {return new requestResult (pesan, requestExceptionEnum); }}3 siswa entitas
Siswa kelas @DataPublic mengimplementasikan Serializable {Private String ID; nama panggilan string pribadi; nama string pribadi; usia int pribadi; seks string pribadi; alamat string pribadi; @Override public string toString () {return tostringbuilder.reflectionToString (this); }}4 Proses permintaan, tambahkan siswa, nama panggilan yang diperlukan. Hanya kode cuplikan layanan yang ditampilkan di sini
@Override Public RevandResult AddStudent (Mahasiswa) {if (studentdao.queryIdbyNickName (student.getNickName ()) == null) {studentdao.addstudent (student); System.out.println ("Tambahkan Sukses"); student = studentdao.querybynickname (student.getnickname ()); return requestResult.ok (mahasiswa); } else {return requestResult.Exception ("user" + student.getNickName () + "sudah ada", studentExceptioneNum.student_exist); }}5 Saat ini, situasi pemrosesan dasar telah selesai. Tes dasar dilakukan di bawah ini
5.1 Tambahkan informasi teman sekelas baru
5.2 Tambahkan lagi untuk menjadikannya tes abnormal
2. Pada titik ini, pada dasarnya dilakukan, tetapi tidak ramah untuk mengembalikannya langsung ke front-end tanpa menangani pengecualian runtime dasar. Oleh karena itu, Anda perlu mendefinisikan kelas penanganan pengecualian RunimeException global.
Anotasi kunci yang perlu digunakan di sini: @ExceptionHandler
Ada dua penggunaan 1) Tambahkan @ExceptionHandler ke pengontrol yang menangani permintaan. Pada saat ini, metode ini hanya akan menangani pengecualian yang dilemparkan oleh pengontrol.
2) Gunakan di kelas penanganan pengecualian global. Kelas Penanganan Pengecualian Global perlu ditandai dengan @RestControllerAdvice atau @ControllerAdvice
Kita perlu menangani Global RunimeException, jadi kita menggunakan metode kedua. Tentu saja, ini ditangani untuk ramah pelanggan. Kami masih harus berurusan dengan kesalahan ini. Apa yang harus kita lakukan? Penting untuk mencatat informasi yang salah untuk analisis dan pemrosesan di masa depan. Logging dilakukan di sini menggunakan Logger. Kodenya adalah sebagai berikut
@RestControllerAdvicepublic Class BaseExceptionHandler {private static Logger Logger = LoggerFactory.getLogger (baseExceptionHandler.class); @ExceptionHandler (value = runtimeException.class) public revandResult exceptionHandler (permintaan httpservletRequest, pengecualian e) {lOgerRor (request, e); Return requestResult.Exception ("Pengecualian ditangani secara internal, insinyur sedang mengerjakan perbaikan darurat, silakan kembali lagi nanti ...", 500); } public static void LOGERROR (permintaan httpservletRequest, pengecualian e) {logger.error ("Alamat permintaan:" + request.getRequesturl ()); Logger.Error ("Metode Permintaan:" + request.getMethod ()); Logger.Error ("Permintaan IP:" + getRemoteip (permintaan)); logger.error ("Rincian kesalahan:"); StackTraceElement [] error = e.getStackTrace (); untuk (StackTraceElement StacktraceElement: error) {Logger.error (stacktraceElement.toString ()); }} public static string getRemoteip (permintaan httpservletRequest) {string ip = request.getHeader ("x-forwarded-for"); if (ip == null || ip.length () == 0 || "tidak diketahui" .equalsignorecase (ip)) {ip = request.getHeader ("proxy-client-ip"); } if (ip == null || ip.length () == 0 || "tidak diketahui" .equalsignorecase (ip)) {ip = request.getheader ("wl-proxy-client-ip"); } if (ip == null || ip.length () == 0 || "tidak diketahui" .equalsignorecase (ip)) {ip = request.getheader ("http_client_ip"); } if (ip == null || ip.length () == 0 || "tidak diketahui" .equalsignorecase (ip)) {ip = request.getheader ("http_x_forwarded_for"); } if (ip == null || ip.length () == 0 || "tidak diketahui" .equalsignorecase (ip)) {ip = request.getRemoteAddr (); }} lain jika (ip.length ()> 15) {string [] ips = ip.split (","); untuk (int index = 0; index <ips.length; index ++) {string strip = (string) ips [index]; if (! ("tidak diketahui" .equalsignorecase (strip))) {ip = strip; merusak; }}} return ip; }}Tes untuk melihat apakah itu berlaku:
Ubah dan tambahkan kode informasi siswa sebagai berikut:
addStudent public requestResult (mahasiswa) {int a = 1/0; if (studentdao.queryidbynickname (student.getNickName ()) == null) {studentdao.addstudent (student); System.out.println ("Tambahkan Sukses"); student = studentdao.querybynickname (student.getnickname ()); return requestResult.ok (mahasiswa); } else {return requestResult.Exception ("user '" + student.getNickName () + "' sudah ada", studentExceptionenum.student_exist); }}Lakukan tes
Pesan kesalahan pencetakan di latar belakang
2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDController.BaseExceptionHandler: Alamat Permintaan: http: // Localhost: 8080/Demo1/Student2018-03-26 17: 01: 19.125/Demo1/Student2018-03-26 17: 01: 19.125/Demo1/Student2018-03-26 17: 01: 19.125/Demo1/Student2018-03-26 17: 01: 19.125/Demo1/Student2018-03-26 17: 01: 19.125/Demo1/Student2018-03-26 17: 01: 19.125/Demo1/Student2018-03 chdcontroller.BaseExceptionHandler : Request method: POST2018-03-26 17:01:19.125 ERROR 9136 --- [nio-8080-exec-2] chdcontroller.BaseExceptionHandler : Request IP: 0:0:0:0:0:0:0:0:0:0:0:12018-03-26 17:01:19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDController.BaseExceptionHandler: Kesalahan Detail: 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseEExceptionHand: nio-8080-exec com.huitong.demo.service.studentservice.addstudent (siswa layanan com.huitong.demo.controller.StudentController.addstudent (StudentController.java:38) 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDCONTROLER.BaseEEXEXCEPONDER: [NIO-8080-EXEC-2] ChdController.BaseeexcepionHand: sun.reflect.nativeMethodaccessorImpl.invoke0 (metode asli) 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdController.BaseEExceptionHandler: sun.reflect.nativeMethodaccessorImpl.invoke (nativeMethodaCessorImpl.java:62) 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseeexceptionhand: sun.reflect.delegatingmethodaccessorImpl.invoke (delegatingmethodacessorimpl.java:43) 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] ChdController.BaseEExcepionHandhand-exec: chdcontroller.baseeexcepionHand: java.lang.reflect.method.invoke (Method.java:498) 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDController.BaseEExceptionHandler: org.springframework.web.method.support.invocableHandlermethod.doinvoke (InvocableHandlermethod.java:209) 2018-03-26 17: 01: 19.125 Kesalahan 9136 --- [NIO-8080-exec-2] chdcoLROLL. org.springframework.web.method.support.invocableHandlermethod.InvokeForRequest (InvocableHandlermethod.java:136) 2018-03-26 17: 01: 19.125 Kesalahan.136 --- [NIO-8080-EXEC-200 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandLermethod.invokeandhandle (servletinvocableHandLermethod.java:102) 2018-03-26 17: 01: 19.125 Kesalahan 9136-------03-03-01: 19.125 9136----03-03-01: 19.125 chdcontroller.BaseExceptionHandler: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:870)2018-03-26 17:01:19.125 ERROR 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseExceptionHandler: org.springframework.web.servlet.mvc.method.annotation.raveestmappingHandlapter.handleinternal (requestMappingHandlerAdlapter.java:776) 2018.012: 01662: 016.016.01: 016.01: 016.01: 016.01: 016.01: 016.01: 016.01: 016.01: 0162: 0162: 0162: 01.016 [NIO-8080-EXEC-2] chdcontroller.baseExceptionHandler: org.springframework.web.servlet.mvc.method.abstracthandlermethodAdapter.handle (abstracthandlermethodadapter.java:87) 2018-036.012.19.19.19.1612.103: 19.103-012. [NIO-8080-EXEC-2] chdController.baseExceptionHandler: org.springframework.web.servlet.dispatcherServlet.dodispatch (DispatcherServlet.java:991) 2018-03-03 17: 01: 19.129 Kesalahan 9136-03-03-03 17: 01: 19.129 9136- chdcontroller.baseExceptionHandler: org.springframework.web.servlet.dispatcherServlet.doservice (DispatcherServlet.java:925) 2018-03-26 17: 01: 19.129 Kesalahan 9136 --- [NIO-8080-EXCECEC-2] 9136-[NIO-8080-ECECOLG-2] org.springframework.web.servlet.frameworkservlet.processRequest (frameworkservlet.java:978) 2018-03-26 17: 01: 19.129 Kesalahan 9136 --- [NIO-8080-Exec-2. org.springframework.web.servlet.frameworkservlet.dopost (frameworkservlet.java:881) 2018-03-26 17: 01: 19.129 Kesalahan 9136 --- [NIO-8080-exec-2] chdontroller.baseeexcepioncepion-Exec-2] chdontroller.baseeexcepion-Exec-2] chdontroller.baseeexcepion: javax.servlet.http.httpservlet.service (httpservlet.java:661) 2018-03-26 17: 01: 19.129 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseeexceptionHand: chdcontroller.baseeexceptionHand: chdcontroller.baseexceptionHand: chdcontroller.baseeExceptionHand: ekse-2 org.springframework.web.servlet.frameworkservlet.service (frameworkservlet.java:855) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-EXEC-2] ChdController.BaseeexceptionHandler: chdcontrcontroler.baseeexcepionHand: javax.servlet.http.httpservlet.service (httpservlet.java:742) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseeexceptionhandsller: NIO-8080-EXEC-2] chdcontroller.baseeexceptionHand: org.apache.catalina.core.ApplicationFilterchain.Internaldofilter (ApplicationFilterchain.java:231) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseeexceptionseptionhandhandshand: org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDCONTROLER.BASEEEEXEXCEPIONDER: org.apache.tomcat.websocket.server.wsfilter.dofilter (wsfilter.java:52) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseeexcepionScepionHand: exec-2] chdcontroller.baseeexcepion-Exec-2] Chdcontroller.baseeexcepion-Exec-2] org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.java:193) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseeexceptionscepionHand: exec-exec- org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDCONTROLER.BASEEEEXEXCEPIONDER: com.alibaba.druid.support.http.webstatfilter.dofilter (webstatfilter.java:123) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2. org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.java:193) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseeexceptionscepionHand: exec-exec- org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDCONTROLER.BASEEEEXEXCEPIONDER: org.springframework.web.filter.requestcontextfilter.dofilterinternal (requestContextFilter.java:99) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.basceper org.springframework.web.filter.oncperrequestfilter.dofilter (sekaliPerquestfilter.java:107) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-Exec-2] chdcontroller.baseexexex: [nio-8080-exec-2. org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.java:193) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseeexceptionscepionHand: exec-exec- org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDCONTROLER.BASEEEEXEXCEPIONDER: org.springframework.web.filter.httpputformcontentfilter.dofilterinternal (httpputformcontentfilter.java:109) 2018-03-26 17: 01: 19.130 kesalahan 9136 --- [nio-8080-exec-2c-exec] org.springframework.web.filter.oncperrequestfilter.dofilter (sekaliPerquestfilter.java:107) 2018-03-26 17: 01: 19.130 Kesalahan 9136 --- [NIO-8080-Exec-2] chdcontroller.baseexexex: [nio-8080-exec-2. org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.java:193) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-Exec-2] chdontroller.baseexceptionsceptionhand org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdontroller.baseeexcepion-Exec-2] chdontroller.baseeexcepion-exec-2 org.springframework.web.filter.hiddenhttpmethodfilter.dofilterinternal (hiddenhttpmethodfilter.java:81) 2018-03-26 17: 01: 19.131 kesalahan 9136 --- [nio-8080-exec-exec-exec-exec-exec-concept. org.springframework.web.filter.oncperrequestfilter.dofilter (sekaliPerquestfilter.java:107) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseEkcept org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.java:193) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-Exec-2] chdontroller.baseexceptionsceptionhand org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdontroller.baseeexcepion-Exec-2] chdontroller.baseeexcepion-exec-2 org.springframework.web.filter.characterencodingfilter.dofilterinternal (karakterencodingfilter.java:200) 2018-03-26 17: 01: 19.131 kesalahan 9136 --- [nio-8080-exec-2] chdcontroller.baseEke: nio-8080-exec-2] chdcontroller.basee.basee-8080 org.springframework.web.filter.oncperrequestfilter.dofilter (sekaliPerquestfilter.java:107) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseEkcept org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.java:193) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-Exec-2] chdontroller.baseexceptionsceptionhand org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:166) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdontroller.baseeexcepion-Exec-2] chdontroller.baseeexcepion-exec-2 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)2018-03-26 17:01:19.131 ERROR 9136 --- [nio-8080-exec-2] chdcontroller.BaseExceptionHandler : org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-Exec-2] Chdontroller.Baseeexcepion-Exec-2] Chdcontroller.Baseeexcepion-Exec-2] org.apache.catalina.authenticator.authenticatorBase.invoke (authenticatorBase.java:496) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseeexceptionscepionhandhand org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)2018-03-26 17:01:19.131 ERROR 9136 --- [nio-8080-exec-2] chdcontroller.BaseExceptionHandler: org.apache.catalina.valves.errorreportvalve.invoke (errorreportvalve.java:81) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontrcontroler.baseeexcepionhandler: chdcontrcontroler.baseeexcepionHand: org.apache.catalina.core.standardenginevalve.invoke (StandardEnginevalve.java:87) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] CHDCONTROLLER.BaseEExcepionHandHand-exec: chdcontroller.baseeexcepionhandller: chdcontroller.baseeexcepionHand-exec: chdcontroller.baseeExcepionHand: org.apache.catalina.connector.coyoteadapter.service (coyoteadapter.java:342) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-Exec-2] ChdController.BaseEExcepionHandHand-exec-2] org.apache.coyote.http11.http11processor.service (http11processor.java:803) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-Exec-2. org.apache.coyote.abstractprocessorlight.process (AbstractProcessorlight.java:66) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] chdcontroller.baseExceptionHandler: NIO-8080-EXEC-2] chdcontroller.baseEExceptionHandler: NIO-8080-EXEC-2] chdcontroller.baseeExceptionHandler: NIO-8080-EXEC-2] chdcontroller.baseEExceptionHandler: NIO-8080 org.apache.coyote.abstractprotocol $ connectionHandler.process (AbstractProtocol.java:790) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] ChdController.BaseEExceptionHandsEndler: chdcontroller.baseeexceptionHand: org.apache.tomcat.util.net.nioendpoint $ socketprocessor.dorun (nioendpoint.java:1459) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [nio-8080-exec-2. org.apache.tomcat.util.net.socketprocessorbase.run (socketprocessorbase.java:49) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-exec-2] chdcontroller.baseeexceptionsepionhandhand java.util.concurrent.threadpoolexecutor.runworker (threadpoolexecutor.java:1142) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] ChdController.baseEExceptionHandsEndler: chdcontroller.baseeexceptionHand: java.util.concurrent.threadpoolexecutor $ worker.run (threadpoolexecutor.java:617) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] ChdController.BaseEExcepionHandler: Chdcontroller.BaseEExceptionHandler: Chdcontroller.BaseEExcepionHand: org.apache.tomcat.util.threads.taskthread $ wrappingrunnable.run (TaskThread.java:61) 2018-03-26 17: 01: 19.131 Kesalahan 9136 --- [NIO-8080-EXEC-2] Chdontroller.Baseeexcepion-Exec-2] Chdontroller.Baseeexcepion-Exec-2] java.lang.thread.run (thread.java:745) 2018-03-26 17: 01: 19.133 WARN 9136 --- [NIO-8080-EXEC-2] .MmaExceptionHandLexceptionResolver: Pengecualian Terselesaikan yang disebabkan oleh Eksekusi handler: java.lerang.
Meringkaskan
Di atas adalah ringkasan penanganan kesalahan springboot yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!