Ausnahmeregelung für Spring Boot 1.5.4
Spring Boot hat eine einheitliche Ausnahmebehandlung implementiert
1.1 Statische Seite
Muss im Ordner resources/static/error konfiguriert werden, benannt nach dem Fehlercode
Das Folgende ist der Inhalt des 404 Fehlerseite beim Zugriff Wenn kein Link vorhanden ist, suchen Sie diese Seite
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Not Found</title></head><body><h1>Sorry, Not Found</h1><p>status code is 404</p></body></html>
1.2 Dynamische Vorlagenseite (der Speicherort der Seite kann nicht geändert werden und es gibt nur zwei Namen: 4xx und 5xx)
Beispiel ( 5xx.ftl)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Error</title></head><body><h1>server error</h1><p><div style="color:red;font-size:large">error code: ${status}-${error}</div><div style="color:red;font-size:medium">error msg: ${exception!},${message!}</div><div><div id="trace" style="color:grey;font-size:small;display: none;border: 1px solid black;padding: 10px;">${trace!}</div></div></p></body></html>
Beabsichtigter Zugriff auf eine Anfrage, die eine Ausnahme auslöst (/test2/throwex)
@Controller @RequestMapping("/test2")public class Test2 { @RequestMapping("")public String index(){return "test"; } @RequestMapping("/throwex") @ResponseBodypublic String throwex(){int a = 3;int b=0;return String.valueOf(a/b); } }
Wenn Sie Ajax verwenden, um auf diese Fehleranforderung zuzugreifen, wird die durch JSON dargestellte Fehlermeldung zurückgegeben
Demoseite ( /test2 -> test.ftl)
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>test</title><script type="text/javascript" src="/js/jquery-2.0.3.min.js?1.1.11"></script></head><body><h1>test page</h1><div><button onclick="doAjax();">请求异常测试</button><div id="msg"></div><textarea id="errorMsg" style="color:red;width: 80%;height:300px"></textarea></div><script type="text/javascript">var doAjax = function () { $.ajax({ url:'/test2/throwex', async:true, type:'GET', data:{}, dataType:'json', success:function (data) { $('#msg').text(data); }, error: function(xhr, textStatus, errorThrown) {// alert(XMLHttpRequest.status);// alert(XMLHttpRequest.readyState);// alert(textStatus); $('#errorMsg').text(xhr.responseText); } }); };</script></body></html>
Hier sind die Fehler beim Zugriff über einen Webbrowser und Ajax. Die Schnittstelle erhält unterschiedliche Ergebnisse, eine gibt eine Fehlerseite aus und die andere gibt einen Fehler-JSON aus, der durch den Empfangstyp der Anfrage bestimmt wird.
Accept:text/html -> Fehlerseite zurückgeben
Accept:application/json, text/javascript -> Fehlerseite zurückgeben2. Passen Sie die Zuordnung von Fehlercodes zu Seiten an
2.1 Konfiguration der statischen Seitenzuordnung (steuern Sie die Fehlercode-Zuordnungsbeziehung, wenn Anpassen des eingebetteten Containers)
@Componentpublic class CustomizationBean implements EmbeddedServletContainerCustomizer{/** * 定制方法一:实现EmbeddedServletContainerCustomizer * @param container */@Overridepublic void customize(ConfigurableEmbeddedServletContainer container) {//container.setPort(9000); }/** * 定制方法二:注入EmbeddedServletContainerFactory * @return */@Beanpublic EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); factory.setPort(9001); factory.setSessionTimeout(10, TimeUnit.MINUTES);//优先级高于配置在/static/error文件夹里面的404.html页面factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error/403.html"));return factory; } }
2.2 Dynamische Seitenzuordnungskonfiguration
@Componentpublic class MyErrorViewResolver implements ErrorViewResolver { @Overridepublic ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map<String, Object> model) { return new ModelAndView("/error/error",model);} }
Dieser benutzerdefinierte ViewResolver ersetzt den Standardseitenprozessor DefaultErrorViewResolver. Die obige Konfiguration ordnet alle Fehler (unabhängig von den Fehlercodes) der Fehlerseite error.ftl zu, um eine einheitliche Verwaltung zu ermöglichen.
Neue error.ftl-Seite mit Fehlerinhalten
Ähnliche Konfiguration wie 5xx.ftl
3. Einige abnormale Konfigurationen
> ; Fehlerattribut gibt Modell zurück)-> Wirf es an den Seitenprozessor ErrorViewResolver
#BasicErrorController的请求路径(你可以遇到错误后跳转的路径,该路径是一个BasicErrorController的请求路径,映射到它errorHtml或者error方法,由请求接受类型决定,一个返回错误页面,一个返回错误json)
#server.error.path=/error
#always include stacktrace(是否包含异常的堆栈信息,默认NEVER,页面无法获取到${trace!}的值,可取值NEVER,ALWAYS,ON_TRACE_PARAM; on_trace_param意思是请求带上参数 ?trace=true)
<em>server.error.include-stacktrace=always<br><br><br></em>
, damit du den Controller anpassen/anpassen kannst
ErrorAttributes/Customization
ErrorViewResolver usw., um eine komplexere Ausnahmebehandlung zu erreichen
Das obige ist der detaillierte Inhalt vonAusnahmeregelung für Spring Boot 1.5.4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen


![Windows-ISO-Datei zu groß BootCamp-Fehler [Behoben]](https://img.php.cn/upload/article/000/887/227/170831702395455.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Wenn Sie bei der Verwendung von BootCampAssistant auf einem Mac-Computer die Fehlermeldung „Die Windows-ISO-Datei ist zu groß“ erhalten, kann dies daran liegen, dass die ISO-Dateigröße den von BootCampAssistant unterstützten Grenzwert überschreitet. Die Lösung für dieses Problem besteht darin, andere Tools zum Komprimieren der ISO-Dateigröße zu verwenden, um sicherzustellen, dass sie im BootCamp-Assistenten verarbeitet werden kann. BootCampAssistant ist ein praktisches Tool von Apple zum Installieren und Ausführen des Windows-Betriebssystems auf Mac-Computern. Es hilft Benutzern beim Einrichten eines Dual-Boot-Systems, sodass sie beim Start problemlos zwischen MacOS und Wind wählen können

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „SpringAI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

Die Abnormalität im Pool ist eine Nebenaufgabe im Spiel. Viele Spieler möchten wissen, wie sie die Abnormalität im Pool erledigen können. Zuerst müssen wir die Technik des Schießens im Wasser beherrschen Die Aufgabe und die Untersuchung der Quelle des Gestanks. Später stellten wir fest, dass sich unter dem Pool viele Leichen befinden. Werfen wir einen Blick auf diese grafische Anleitung für die ungewöhnlichen Aufgaben im Pool in Rise of Ronin. Leitfaden für ungewöhnliche Missionen im Ronin Rise Pool: 1. Sprechen Sie mit Iizuka und lernen Sie die Technik des Schießens im Wasser. 2. Gehen Sie zum Ort im Bild unten, um die abnormale Aufgabe im Pool zu erhalten. 3. Gehen Sie zum Missionsort, sprechen Sie mit dem NPC und erfahren Sie, dass im nahegelegenen Pool ein übler Geruch herrscht. 4. Gehen Sie zum Pool, um nachzuforschen. 5. Schwimmen Sie zum Ort im Bild unten, tauchen Sie unter Wasser und Sie werden viele Leichen finden. 6. Machen Sie mit einer Kamera Fotos von der Leiche. 7

Heute möchte ich Ihnen einen letzte Woche vom MIT veröffentlichten Artikel vorstellen, in dem GPT-3.5-turbo verwendet wird, um das Problem der Erkennung von Zeitreihenanomalien zu lösen, und zunächst die Wirksamkeit von LLM bei der Erkennung von Zeitreihenanomalien überprüft wird. Im gesamten Prozess gibt es keine Feinabstimmung, und GPT-3.5-Turbo wird direkt zur Anomalieerkennung verwendet. Der Kern dieses Artikels besteht darin, wie man Zeitreihen in Eingaben umwandelt, die von GPT-3.5-Turbo erkannt werden können, und wie man sie entwirft Eingabeaufforderungen oder Pipelines, damit LLM die Anomalieerkennungsaufgabe lösen kann. Lassen Sie mich Ihnen diese Arbeit im Detail vorstellen. Titel des Bildpapiers: Largelingualmodelscanbezero-shotanomalydete

Praktische Tipps zum effizienten Beheben von Leseausnahmen bei großen Dateien in Java erfordern spezifische Codebeispiele. Übersicht: Bei der Verarbeitung großer Dateien kann es in Java zu Problemen wie Speicherüberlauf und Leistungseinbußen kommen. In diesem Artikel werden verschiedene praktische Techniken zur effektiven Lösung von Ausnahmen beim Lesen großer Java-Dateien vorgestellt und spezifische Codebeispiele bereitgestellt. Hintergrund: Bei der Verarbeitung großer Dateien müssen wir möglicherweise den Dateiinhalt zur Verarbeitung in den Speicher einlesen, z. B. zum Suchen, Analysieren, Extrahieren und für andere Vorgänge. Wenn die Datei jedoch groß ist, treten häufig die folgenden Probleme auf: Speicherüberlauf: Es wird versucht, die gesamte Datei auf einmal zu kopieren

So legen Sie die Transaktionsisolationsstufe in Spring fest: 1. Verwenden Sie die Annotation @Transactional. 3. Legen Sie sie in der Spring-Konfigurationsdatei fest. 4. Legen Sie sie in der Java-Konfigurationsklasse fest. Detaillierte Einführung: 1. Verwenden Sie die Annotation @Transactional, fügen Sie die Annotation @Transactional zu der Klasse oder Methode hinzu, die eine Transaktionsverwaltung erfordert, und legen Sie die Isolationsstufe im Attribut fest. 2. In der Spring-Konfigurationsdatei usw.
