Well, in order for the reference to be set, the object used must
adhere to the same API.  The object is, indeed a proxy.  So, the proxy
either implements the same interface as the type of the field or
extends the class of the type of the field (you should be using
interfaces if at all possible).

On Wed, Feb 18, 2009 at 1:59 AM, Sergey Podatelev
<brightnesslev...@gmail.com> wrote:
> Thanks for your insight, Patrick.
>
> But I'm stuck in my dumbness: "setting the component's fields" -- does this
> mean a new instance of that particular annotated bean is created, or that
> singleton is accessed somehow (proxy)?
> Also, it's not the injected beans that are null, it's their dependencies,
> and I assume that is because new instances of those beans are created.
>
>
> On Wed, Feb 18, 2009 at 9:13 AM, Patrick Angeles 
> <patr...@inertiabev.com>wrote:
>
>>
>>
>> To answer your question, yes spring beans are singleton by default. The
>> @SpringBean annotation works roughly like this: in your Application class,
>> you set a ComponentInstantiationListener which gets called every time a
>> Wicket page/component is instantiated. The particular listener that gets
>> set
>> (SpringComponentInjector) takes care of setting the component's fields that
>> are annotated with @SpringBean with the appropriate beans found in the
>> spring context.
>>
>> My guess is that the Listener isn't being configured properly, and that is
>> why your @SpringBeans are null...
>>
>>
>>
>> Sergey Podatelev wrote:
>> >
>> > Okay, this question might actually be more related to Spring, but I'm
>> > completely lost here, and my question on Spring forums usually don't get
>> > any
>> > replies, so I hope Wicket community might help as it usually does.
>> >
>> > I'm using JCR, and have a RepositoryDao bean configured in
>> > applicationContext.xml.
>> > RepositoryDao has a "template" property which points to an instance of
>> > JcrTemplate in applicationContext.xml, all repository access is performed
>> > through that template.
>> >
>> > I have an AccessPage which has a RepositoryDao injected via @SpringBean.
>> > There is an inner class Form on that page, it has a default submit button
>> > and three submit buttons that skip default processing and perform their
>> > own
>> > operations onSubmit(). Both default button and skip-default-processing
>> > buttons use the same repositoryDao property of AccessPage to perform
>> > certain
>> > operations on repository.
>> >
>> > I noticed that when I actually open that AccessPage, there's a new
>> > RepositoryDao object created, and it's "template" property is null. When
>> I
>> > press any of those non-default submit buttons of the form, everything
>> > works
>> > fine. But on default button onSubmit(), I see that there's yet another
>> > insance of RepositoryDao created, and it's "template" is also null, which
>> > leads to NullPointerException.
>> >
>> > I assumed that beans configured in applicationContext.xml are actually
>> > singletons, so there won't be any new instances of such nodes upon
>> > pages-with-injections instantiation.
>> >
>> > Regardless of whether that assumption is correct/incorrect/my-god-rtfm, I
>> > still won't understand why default submit button reaction is NPE as it
>> > uses
>> > same partnershipDao property of AccessPage.
>> >
>> > Could someone please elaborate some internal differences of the
>> > annotation-based approach as opposed to storing DAOs in Application
>> > object.
>> > In the latter case it's quite clear that there's a single instance of
>> > RepositoryDao as a property of MyApplication which is pulled on
>> > ((MyApplication) Application.get()).getRepositoryDao().
>> >
>> > Thanks.
>> >
>> > --
>> > sp
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/%40SpringBean-vs-getApplication%28%29.getDao%28%29-tp22061472p22072806.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
>
> --
> sp
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to