-
1. Re: Seam with Spring?
gavin.king Sep 21, 2005 12:28 AM (in response to mikestephen)Is it possible to use Spring with Seam, rather than EJBs?
It would be very easy to add support for spring components as a kind of STATELESS component. We have already speculated privately that this is something we might support. I guess you could easily write a patch for this, if we don't get round to it first.I read in some of the documentation that if you use JavaBeans rather than the other component types (Entity Beans, Session Beans), that there would be no transaction management.
That's not quite true. What the docs mean is that there is no *component* demarcated transactions, as there are in EJB. However, if you use SeamManagedPersistenceContextPhaseListener, you will get Seam-managed transactions, with conversation-scoped Seam-managed extended persistence context, which is actually a really nice option. If you're interested, I can give more details about the advantages of this, but it is described in the docs.The reason I ask is that I am now experienced with Spring and would prefer to keep using it while hopefully also benefitting from what Seam has to offer at the same time.
Sure, we don't want people to have to throw away existing code to be able to make the switch. However, a small word of caution: to get the full benefits of Seam, you want to start thinking about componentizing your system into stateful components. So the Spring model of mostly stateless beans can interoperate with the Seam model, but it is not really the same model. -
2. Re: Seam with Spring?
papick Jul 23, 2006 2:56 PM (in response to mikestephen)IMHO, using Spring with Seam is not breaking with the main Seam concepts.
There are still situations where you could prefer to stick to the stateless Spring backend.
When integrating with JSF, it is enough to add a new variable resolver. Is there a simila concept in Seam?
Or is it even enough to add the variable resolver as it is done by now? -
3. Re: Seam with Spring?
gavin.king Jul 23, 2006 7:54 PM (in response to mikestephen)There are still situations where you could prefer to stick to the stateless Spring backend.
You can easily implement a stateless business layer in Seam....When integrating with JSF, it is enough to add a new variable resolver. Is there a simila concept in Seam?
You can have as many variable resolvers as you like. The Seam variable resolver to resolve Seam components, a Spring resolver to resolve Spring beans, etc.... -
4. Re: Seam with Spring?
papick Jul 24, 2006 3:26 AM (in response to mikestephen)Hi Gavin, thanks for the reply.
I saw the statelles layer in seam, its nice. In my special case, I have a architecture ontop of maven2 and spring. Autonomous modules, quite nice.
Seam does really nice magic in the frontend.
For me it looks like JSF as it should have been from the beginning, and its the major technology line-up tha Sun failed to provide with Java EE 5."gavin.king@jboss.com" wrote:
You can have as many variable resolvers as you like. The Seam variable resolver to resolve Seam components, a Spring resolver to resolve Spring beans, etc....
Yes, thats true for JSF, but what about Seam? Is it that extensible too? Would be *very* interesting to have some Spring beans injected into my contextual web model handled by Seam.
greetings from germany,
Papick G. Taboada -
5. Re: Seam with Spring?
manuel.gentile Sep 7, 2006 6:34 AM (in response to mikestephen)Do you have an example of integration between seam and spring?!??!?!
Thanks -
6. Re: Seam with Spring?
smartbinary Oct 24, 2006 11:26 AM (in response to mikestephen)Sorry to regurgitate Manuel's question ... however, I'm working with a team that has Spring massively integrated into its framework.
Many on the team (myself included) would like to leverage Seam 1.1 ... for the purposes of Validation, Internationalization, Conversation State ... just to name a few.
Are there others out there working in a Spring + Seam environment ... or planning to do so?
I'd very much appreciate hearing success and/or failure stories ... an example app would be even better! -
7. Re: Seam with Spring?
fady.matar Oct 24, 2006 1:22 PM (in response to mikestephen)How would the spring framework integration enhance JBoss Seam? Session beans in JBoss Seam are being used for transaction management.
I don't see any benifit of integration the spring framework except for replacing the transaction managemnt of Session Beans and use Hibernate POJOs instead of Entity beans.
I believe the complexity and inter-dependency of frameworks needt to be reduced, required functionalities of Spring can be embedded into JBoss Seam easily, the framework is quite flexible and made me drop a similar framework I've been developing that used Spring and WebWork back then -
8. Re: Seam with Spring?
adambrod Oct 24, 2006 2:37 PM (in response to mikestephen)The easiest way to integrate Spring and Seam, that I've found, is to use a JSF variable resolver and only have the dependencies go from Seam to Spring.
In the presentation tier, you can use Seam to manage your controllers (and conversations and lots of other good stuff). In the backend tier you can use Spring to manage your stateless services (Daos, Repositories, any Service). Then, you can inject your services into your Seam controllers using the Seam @In(#{mySpringService}) notation. Seam recognizes JSF expressions.
Spring ships with a JSF variable resolver. You just need to register it in your faces-config.xml.<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
You can use Spring to manage your services (instead of using Stateless Session beans, for example), you can use Seam to manage your controllers (aka JSF managed-beans) and conversations. So the Seam components can reference Spring components, but Spring components cannot reference Spring components.
I hope this helps. -
9. Re: Seam with Spring?
gavin.king Oct 24, 2006 3:20 PM (in response to mikestephen)Yes, that sounds like an excellent strategy - want to write up a Wiki page with code examples?
Another thing that would be very useful for people using Seam with Spring would be to be able to inject a Seam-managed persistence context (Session or EntityManager) into a Spring DAO. This has got to be very easy to set up, is my guess (just write a Spring factory method that looks up the Seam PC).
Does someone want to figure out the details of that, and wikify it? -
10. Re: Seam with Spring?
gavin.king Oct 24, 2006 3:21 PM (in response to mikestephen)Actually, it should be trivial to write a generic Spring factory method to look up ANY Seam component.
-
11. Re: Seam with Spring?
adambrod Oct 24, 2006 3:27 PM (in response to mikestephen)Sure. How can I post a new page to the wiki?
-
12. Re: Seam with Spring?
adambrod Oct 24, 2006 3:48 PM (in response to mikestephen)Nevermind, here is my wiki entry on Spring and Seam integration. Anybody please add to this where it makes sense. http://wiki.jboss.org/wiki/Wiki.jsp?page=SpringAndSeamIntegration
-
13. Re: Seam with Spring?
henderson_mk Oct 30, 2006 4:36 AM (in response to mikestephen)Hey folks,
Did anyone decide to do a lookup to get the PeristenceContext in a factory method? I'd like to do this, but am not 100% sure where to start.
Is it possible to get the PC from the Contexts class using thelookupInStatefulContexts() method? or am I totally on the wrong track?
hope you can help,
Marty -
14. Re: Seam with Spring?
gavin.king Oct 30, 2006 11:39 AM (in response to mikestephen)You should use Component.getInstance(pcName)