{"id":21,"date":"2007-06-14T17:12:00","date_gmt":"2007-06-14T17:12:00","guid":{"rendered":"http:\/\/euve3303.vserver.de\/stefan\/blog\/?p=24"},"modified":"2007-06-14T17:12:00","modified_gmt":"2007-06-14T17:12:00","slug":"jsf-spring-integration","status":"publish","type":"post","link":"https:\/\/cogito-ergo-blog.de\/blog\/2007\/06\/14\/jsf-spring-integration\/","title":{"rendered":"JSF Spring Integration"},"content":{"rendered":"<h3>JSF Spring Integration<\/h3>\n<p>Bislang gab es vor allem zwei Ans\u00e4tze JSF und Spring einander n\u00e4her zu bringen:<\/p>\n<ol>\n<li>Der Spring eigene DelegatingVariableResolver<\/li>\n<li>JSF-Spring<\/li>\n<\/ol>\n<p>Erstere liefert \u00fcber einen Custom Variable Resolver die M\u00f6glichkeit auf Spring-Beans aus JSF (mit Hilfe der ExpressionLanguage) zuzugreifen.<\/p>\n<p>JSF-Spring f\u00fcgt dann noch die M\u00f6glichkeit hinzu auch von Spring aus auf JSF zugreifen zu k\u00f6nnen.<\/p>\n<p>Aber mit Spring 2.0 braucht man das eigentlich gar nicht mehr &#8230;<\/p>\n<p>\n<!--more--><\/p>\n<h3>Spring 2.0 Scopes<\/h3>\n<p>Warum Spring 2.0 Scopes die Sache so vereinfachen ging mir erst neulich auf. JSF kann mit &quot;managed Bean&quot; und &quot;managed Properties&quot; auch ein bisschen DependencyInjection, aber bei Weitem nicht so abgefahren wie Spring.<\/p>\n<p>Das einzige, was JSF mehr konnte &#8211; und was praktisch immer gebraucht wurde &#8211; sind die Scopes &quot;Request&quot; oder &quot;Session&quot;. Spring 1.x Beans sind entweder Singletons oder Prototypes, will man die an den Request oder die Session binden, braucht es daf\u00fcr speziellen Code. Spring 2.0 kann das aber selbst!<\/p>\n<h3>Schlussfolgerung<\/h3>\n<p>Ich verwende fortan <b><i>gar keine<\/i><\/b> JSF managed Beans mehr sondern baue komplett auf Spring. Beans die Session- oder Request-Scope werden im Spring-Context passend konfiguriert und fertig.<\/p>\n<p>Eine bidirektionale Integration zwischen JSF und Spring ist <i>gar nicht mehr erforderlich<\/i>: es gibt <i>nur <\/i>noch Spring Beans.<\/p>\n<p>\nSiehe auch: <a href=\"http:\/\/www.thearcmind.com\/confluence\/display\/SHJFT\/Using+Spring+2+with+JSF\">Using Spring 2 with JSF<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>JSF Spring Integration Bislang gab es vor allem zwei Ans\u00e4tze JSF und Spring einander n\u00e4her zu bringen: Der Spring eigene DelegatingVariableResolver JSF-Spring Erstere liefert \u00fcber einen Custom Variable Resolver die M\u00f6glichkeit auf Spring-Beans aus JSF (mit Hilfe der ExpressionLanguage) zuzugreifen. &hellip; <a href=\"https:\/\/cogito-ergo-blog.de\/blog\/2007\/06\/14\/jsf-spring-integration\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"_links":{"self":[{"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/posts\/21"}],"collection":[{"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":0,"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/posts\/21\/revisions"}],"wp:attachment":[{"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cogito-ergo-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}