{"id":187,"date":"2024-01-27T21:29:53","date_gmt":"2024-01-27T20:29:53","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=187"},"modified":"2024-02-13T21:37:01","modified_gmt":"2024-02-13T20:37:01","slug":"spring-webanwendungen-mit-controller-und-restcontroller-annotationen-erstellen","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=187","title":{"rendered":"Spring-Webanwendungen mit @Controller- und @RestController-Annotationen erstellen"},"content":{"rendered":"\n<p>Spring Boot hat sich als eines der beliebtesten Frameworks f\u00fcr die Entwicklung von Java-Anwendungen etabliert. Die Architektur von Spring Boot erm\u00f6glicht eine effiziente und strukturierte Entwicklung von Webanwendungen. In diesem Artikel werden wir die @Controller- und @RestController-Annotationen von Spring Boot genauer unter die Lupe nehmen. Diese Annotationen spielen eine zentrale Rolle bei der Erstellung von RESTful Web Services und der Handhabung von HTTP-Anforderungen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Die @Controller-Annotation:<\/h3>\n\n\n\n<p>Die @Controller-Annotation ist eine Schl\u00fcsselkomponente in Spring MVC, einem Teil des Spring-Frameworks, der die Entwicklung von Webanwendungen erleichtert. Ein Controller in Spring Boot ist f\u00fcr die Entgegennahme von HTTP-Anforderungen und die Steuerung des Flusses der Anwendung verantwortlich. Durch die Verwendung der @Controller-Annotation kann eine Klasse als Controller deklariert werden.<\/p>\n\n\n\n<p>Beispielcode:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">@Controller\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyController<\/span> <\/span>{\n    @GetMapping(<span class=\"hljs-string\">\"\/welcome\"<\/span>)\n    <span class=\"hljs-keyword\">public<\/span> String welcome() {\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"welcomePage\"<\/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\">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 Klasse &#8222;MyController&#8220; als Controller deklariert. Die @GetMapping-Annotation zeigt an, dass die Methode &#8222;welcome&#8220; aufgerufen werden soll, wenn eine HTTP-GET-Anforderung an die URL &#8222;\/welcome&#8220; erfolgt. Der R\u00fcckgabewert &#8222;welcomePage&#8220; ist der Name der Ansicht, die dem Benutzer pr\u00e4sentiert wird.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Die @RestController-Annotation:<\/h3>\n\n\n\n<p>Die @RestController-Annotation ist eine spezielle Form der @Controller-Annotation. W\u00e4hrend ein herk\u00f6mmlicher Controller HTML-Seiten rendert, ist ein RestController darauf ausgerichtet, Daten im JSON- oder XML-Format f\u00fcr RESTful Web Services bereitzustellen. Dies erm\u00f6glicht die Entwicklung von Anwendungen, die leicht mit anderen Systemen kommunizieren k\u00f6nnen.<\/p>\n\n\n\n<p>Beispielcode:<\/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@RequestMapping(<span class=\"hljs-string\">\"\/api\"<\/span>)\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyRestController<\/span> <\/span>{\n    @GetMapping(<span class=\"hljs-string\">\"\/greet\"<\/span>)\n    <span class=\"hljs-keyword\">public<\/span> String greet() {\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"Hello, World!\"<\/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>Hier wird die Klasse &#8222;MyRestController&#8220; als RestController deklariert. Die @RequestMapping-Annotation legt den Basispfad f\u00fcr alle Endpunkte in diesem Controller fest. Die @GetMapping-Annotation gibt an, dass die Methode &#8222;greet&#8220; aufgerufen werden soll, wenn eine HTTP-GET-Anforderung an die URL &#8222;\/api\/greet&#8220; erfolgt. Der R\u00fcckgabewert &#8222;Hello, World!&#8220; wird direkt als Textantwort zur\u00fcckgegeben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hauptunterschiede:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Antwortformat:<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>@Controller gibt HTML-Seiten oder andere Ansichten als Antwort zur\u00fcck.<\/li>\n\n\n\n<li>@RestController gibt Daten im JSON- oder XML-Format zur\u00fcck.<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Voreinstellung f\u00fcr @ResponseBody:<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bei @Controller muss die @ResponseBody-Annotation verwendet werden, um anzugeben, dass die R\u00fcckgabewerte direkt in den HTTP-Antwortk\u00f6rper geschrieben werden sollen.<\/li>\n\n\n\n<li>@RestController enth\u00e4lt diese Funktion bereits implizit, wodurch die @ResponseBody-Annotation nicht explizit angegeben werden muss.<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Verwendung in RESTful Web Services:<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>@Controller wird h\u00e4ufig f\u00fcr die Entwicklung von Webanwendungen verwendet, die HTML-Seiten rendern.<\/li>\n\n\n\n<li>@RestController wird speziell f\u00fcr die Entwicklung von RESTful Web Services verwendet, bei denen die Daten in einem austauschbaren Format (JSON oder XML) \u00fcbertragen werden.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Wann verwendet man welche Annotation?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwenden Sie die @Controller-Annotation, wenn Sie eine Webanwendung entwickeln, die HTML-Seiten rendert und eine serverseitige Vorlagen-Engine wie Thymeleaf oder JSP verwendet.<\/li>\n\n\n\n<li>Verwenden Sie die @RestController-Annotation, wenn Sie eine RESTful Web Service-API erstellen, die Daten im JSON- oder XML-Format zur\u00fcckgibt und keine serverseitige Vorlagen-Engine ben\u00f6tigt.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Fazit:<\/h3>\n\n\n\n<p>Die @Controller- und @RestController-Annotationen in Spring Boot bieten Entwicklern flexible Werkzeuge f\u00fcr die Implementierung von Webanwendungen und RESTful Web Services. Durch die sorgf\u00e4ltige Auswahl der geeigneten Annotation f\u00fcr den jeweiligen Anwendungsfall k\u00f6nnen Entwickler effizient und effektiv hochwertige Anwendungen erstellen. Spring Boot bleibt eine leistungsstarke Plattform f\u00fcr die Java-Entwicklung, und die Verwendung dieser Annotationen ist ein Schl\u00fcsselkonzept f\u00fcr den Erfolg in der Welt der Webentwicklung.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Boot hat sich als eines der beliebtesten Frameworks f\u00fcr die Entwicklung von Java-Anwendungen etabliert. Die Architektur von Spring Boot erm\u00f6glicht eine effiziente und strukturierte Entwicklung von Webanwendungen. In diesem Artikel werden wir die @Controller- und @RestController-Annotationen von Spring Boot genauer unter die Lupe nehmen. Diese Annotationen spielen eine zentrale Rolle bei der Erstellung von [&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-187","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\/187","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=187"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":188,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/187\/revisions\/188"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}