{"id":318,"date":"2024-03-30T09:44:32","date_gmt":"2024-03-30T08:44:32","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=318"},"modified":"2024-04-02T09:50:31","modified_gmt":"2024-04-02T08:50:31","slug":"url-matching-in-spring-boot","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=318","title":{"rendered":"URL-Matching in Spring Boot"},"content":{"rendered":"\n<p>Spring Boot ist ein \u00e4u\u00dferst beliebtes Framework f\u00fcr die Entwicklung von Java-Anwendungen, insbesondere f\u00fcr die Erstellung von Webanwendungen und RESTful-Services. Ein wichtiger Aspekt bei der Entwicklung von Webanwendungen ist das URL-Matching, das die Zuordnung von eingehenden Anfragen zu den entsprechenden Endpunkten in der Anwendung erm\u00f6glicht. In diesem Artikel werden wir uns ausf\u00fchrlich mit dem URL-Matching in Spring Boot befassen, wie es funktioniert und wie Sie es in Ihren eigenen Projekten nutzen k\u00f6nnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die Grundlagen des URL-Matching<\/h2>\n\n\n\n<p>Bevor wir uns mit dem URL-Matching in Spring Boot befassen, ist es wichtig, die Grundlagen zu verstehen. Eine URL (Uniform Resource Locator) ist eine Zeichenkette, die die Adresse einer Ressource im Web angibt. Beispielsweise ist &#8222;https:\/\/www.meine-webseite.de\/startseite&#8220; eine URL, die auf die Startseite einer Website verweist.<\/p>\n\n\n\n<p>Das URL-Matching bezieht sich auf den Prozess, bei dem eine eingehende URL einer bestimmten Anwendung einem spezifischen Endpunkt zugeordnet wird. In einer Spring Boot-Anwendung geschieht dies mithilfe von sogenannten &#8222;RequestMappings&#8220;, die die URL-Muster definieren, auf die die Anwendung reagiert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung von @RequestMapping<\/h2>\n\n\n\n<p>In Spring Boot k\u00f6nnen Sie die Annotation <code>@RequestMapping<\/code> verwenden, um einen Endpunkt in Ihrer Anwendung zu definieren. Diese Annotation kann auf Klassen und Methoden angewendet werden, um anzugeben, welche URLs von der Anwendung bedient werden sollen. Hier ist ein einfaches Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">import<\/span> <span class=\"hljs-selector-tag\">org<\/span><span class=\"hljs-selector-class\">.springframework<\/span><span class=\"hljs-selector-class\">.web<\/span><span class=\"hljs-selector-class\">.bind<\/span><span class=\"hljs-selector-class\">.annotation<\/span>.*;\n\n<span class=\"hljs-keyword\">@RestController<\/span>\npublic class MeinController {\n\n    <span class=\"hljs-keyword\">@RequestMapping<\/span>(\"\/hallo\")\n    public String halloWelt() {\n        <span class=\"hljs-selector-tag\">return<\/span> \"<span class=\"hljs-selector-tag\">Hallo<\/span> <span class=\"hljs-selector-tag\">Welt<\/span>!\";\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die Methode <code>halloWelt()<\/code> aufgerufen, wenn eine Anfrage an die URL &#8222;\/hallo&#8220; gesendet wird. Die Annotation <code>@RestController<\/code> kennzeichnet die Klasse als Controller und die Annotation <code>@RequestMapping<\/code> gibt an, dass die Methode auf die URL &#8222;\/hallo&#8220; abgebildet wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">URL-Variablen<\/h2>\n\n\n\n<p>Oft m\u00f6chten Sie dynamische Teile einer URL erfassen, z. B. eine Benutzer-ID oder einen Produktnamen. In Spring Boot k\u00f6nnen Sie dies mithilfe von URL-Variablen tun. Hier ist ein Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">@RestController\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">UserController<\/span> <\/span>{\n\n    @RequestMapping(<span class=\"hljs-string\">\"\/benutzer\/{id}\"<\/span>)\n    <span class=\"hljs-keyword\">public<\/span> String getUser(@PathVariable int id) {\n        <span class=\"hljs-comment\">\/\/ Code, um Benutzer mit der angegebenen ID zu finden und zur\u00fcckzugeben<\/span>\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die Methode <code>getUser()<\/code> aufgerufen, wenn eine Anfrage an eine URL wie &#8222;\/benutzer\/123&#8220; gesendet wird. Die <code>{id}<\/code> in der URL ist eine Platzhaltervariable, die in der Methode mit <code>@PathVariable<\/code> erfasst wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ant-Pfad-Muster<\/h2>\n\n\n\n<p>Spring Boot unterst\u00fctzt auch die Verwendung von Ant-Pfad-Mustern in URL-Mappings. Ant-Pfad-Muster erm\u00f6glichen es Ihnen, Platzhalter f\u00fcr Teile einer URL zu verwenden. Hier ist ein Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">@RestController\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">ProduktController<\/span> <\/span>{\n\n    @RequestMapping(<span class=\"hljs-string\">\"\/produkte\/*\/details\"<\/span>)\n    <span class=\"hljs-keyword\">public<\/span> String getProductDetails() {\n        <span class=\"hljs-comment\">\/\/ Code, um Produktinformationen zur\u00fcckzugeben<\/span>\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die Methode <code>getProductDetails()<\/code> aufgerufen, wenn eine Anfrage an eine URL wie &#8222;\/produkte\/123\/details&#8220; oder &#8222;\/produkte\/abc\/details&#8220; gesendet wird. Das <code>*<\/code> im URL-Muster ist ein Platzhalter, der f\u00fcr beliebige Zeichen steht.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verfeinern des URL-Matchings<\/h2>\n\n\n\n<p>Manchmal m\u00f6chten Sie m\u00f6glicherweise das URL-Matching verfeinern, um sicherzustellen, dass bestimmte Endpunkte nur auf bestimmte Arten von Anfragen reagieren. Spring Boot bietet hierf\u00fcr verschiedene M\u00f6glichkeiten, einschlie\u00dflich der Verwendung von zus\u00e4tzlichen Annotationen wie <code>@GetMapping<\/code>, <code>@PostMapping<\/code>, <code>@PutMapping<\/code> und <code>@DeleteMapping<\/code>, um anzugeben, welche HTTP-Methoden von einem Endpunkt akzeptiert werden sollen.<\/p>\n\n\n\n<p>Dar\u00fcber hinaus k\u00f6nnen Sie mit der Annotation <code>@RequestMapping<\/code> weitere Attribute angeben, um das URL-Matching zu verfeinern. Beispielsweise k\u00f6nnen Sie die <code>method<\/code>-Attribut verwenden, um anzugeben, welche HTTP-Methoden akzeptiert werden sollen, oder das <code>consumes<\/code>-Attribut, um anzugeben, welche Medientypen von einem Endpunkt akzeptiert werden sollen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Das URL-Matching ist ein wichtiger Aspekt bei der Entwicklung von Webanwendungen, da es die Zuordnung von eingehenden Anfragen zu den entsprechenden Endpunkten in der Anwendung erm\u00f6glicht. In Spring Boot k\u00f6nnen Sie das URL-Matching einfach mithilfe von <code>@RequestMapping<\/code>-Annotationen definieren und durch die Verwendung von URL-Variablen und Ant-Pfad-Mustern flexibel gestalten. Durch das Verfeinern des URL-Matchings k\u00f6nnen Sie sicherstellen, dass Ihre Endpunkte nur auf bestimmte Arten von Anfragen reagieren und Ihre Anwendung sicher und effizient funktioniert.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Boot ist ein \u00e4u\u00dferst beliebtes Framework f\u00fcr die Entwicklung von Java-Anwendungen, insbesondere f\u00fcr die Erstellung von Webanwendungen und RESTful-Services. Ein wichtiger Aspekt bei der Entwicklung von Webanwendungen ist das URL-Matching, das die Zuordnung von eingehenden Anfragen zu den entsprechenden Endpunkten in der Anwendung erm\u00f6glicht. In diesem Artikel werden wir uns ausf\u00fchrlich mit dem URL-Matching [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-318","post","type-post","status-publish","format-standard","hentry","category-spring"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/318","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=318"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/318\/revisions"}],"predecessor-version":[{"id":319,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/318\/revisions\/319"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=318"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=318"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}