I agree service locators are a better match currently. Personally, I don't have a problem with that, as I usually hide where I get my services from etc in my custom RequestCycle objects. If that would be fine for you too, you could actually use dependency injection on your custom RequestCycles (which are created by a factory after all).

The problem with doing this with pages:
* even if it worked for pages, Panels, borders etc would be another story. So, it might encourage a page oriented approach a bit too much. * usually, you would do dependency injection at, or right after construction. That's not a good idea for pages however, as they can be reused in another request/ thread, in which case you would want your dependencies re-injected. And that would only be possible with property injection, not constructor injection. * the page that is to be rendered could be another page than the one used for handling an event

If you really want injection, you should do it at some initialization point, and do it every time (e.g. onBeginRequest). But even that would be a bit tricky. Couldn't you do this with proper AOP?

Eelco


Gustavo Hexsel wrote:

 That's not exactly "dependency injection".  Ideally, Spring should be the "page 
factory", so it creates the pages and sets the dependencies for you.  I'm sorry Phil, I know 
this is not perfect from the serialization point of view, but the pages are the controllers for 
this app, they need to know the services that model the system as well as the interface that 
displays it.  As I said, Wicket works better for service locators than for dep inj.

 A page that lists all customers should have an instance of a service that list 
the customers...

 []s Gus


---------- Início da mensagem original -----------

     De: [EMAIL PROTECTED]
   Para: [email protected]
Cc: Data: Mon, 11 Jul 2005 12:46:31 -0500
Assunto: Re: [Wicket-user] Spring Integration

Here's how I'm approaching it now:

public class MyApplication extends WebApplication {

   private XmlBeanFactory beans;

   public MyApplication() {
       ClassPathResource res = new ClassPathResource("applicationContext.xml");
       beans = new XmlBeanFactory(res);
   }

   public Object getBean(String name) {
       return beans.getBean(name);
   }
}

And I'll just reference it from my Page classes using
getApplication().getBean("...").



On 7/11/05, Phil Kulak <[EMAIL PROTECTED]> wrote:
Holding the beans in the pages is not a good idea. I did this for a
bit, but the pages are serialized and your app-context beans aren't.
So then you have to make your app-context beans serializable, which
defeats the point of having an app context.

-Phil

On 7/11/05, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
What would you need to make it pretty? If you have concrete idea's on
how we can improve Wicket for this, please share them.

Eelco

Gustavo Hexsel wrote:

One possible way would be to have a parent page class that would hold it, and 
customize your page factory to set it in all created pages.  It's pretty easy.  
Let me know if you can't picture it and I'll try to write a sample code.

I use dependency injection in most of my pages and unfortunately, it doesn't 
look nearly as pretty as I wanted it to.  Most Wicket examples favour service 
locator instead... I guess you might find yourself in the same boat.

[]s Gus


---------- Início da mensagem original -----------

    De: [EMAIL PROTECTED]
  Para: [email protected]
    Cc:
  Data: Mon, 11 Jul 2005 11:16:47 -0500
Assunto: [Wicket-user] Spring Integration



Hi,

I'm looking into Wicket and would like to know what the preferred
method of integrating Wicket with Spring.  I'll need access to the
bean factory in the page classes.  I checked the wiki and didn't see
anything.  Thanks for the help.

-Nick


-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user



__________________________________________________________________________
UOL Fone: Fale com o Brasil e o Mundo com até 90% de economia.
http://www.uol.com.br/fone




-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user


__________________________________________________________________________
UOL Fone: Fale com o Brasil e o Mundo com até 90% de economia. http://www.uol.com.br/fone




-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to