Pieter,

... if you're not injecting into components anywhere in your application you
naturally should be able to skip registering the
ComponentInstatiationListener.

Regards - Cemal
jWeekend
OO & Java Technologies, Wicket Training and Development
http://jWeekend.com


jWeekend wrote:
> 
> Pieter,
> 
> Have you set up Spring's ContextLoaderListener (a Servlet listener that
> initiates your Spring context) and registered the Spring
> SpringComponentInjector as a Component instantiaition listener [1]?
> 
> Your idea to instigate injection in the super classes constructor is fine
> as "this" will be the concrete subclass that you are instantiating - make
> sure the right super constructor is called in all places you want
> injection to take place, and also that you are not initialising the
> sub-classes injected properties as that would take place after the super
> class is initialised undoing what the super class constructor has done.
> 
> Finally, in a case like this, get the simplest possible scenario working
> first (here, try injecting into the subclass directly) to show you have
> everything set up correctly and then try the conceptually slightly more
> complex solution of pushing-up the responsibility to instigate injection
> for all your "models" into their common, abstract superclass.
> 
> Also, notice that this injector goes straight to your fields, even if
> they're private, so your setters not being called alone does not mean
> injection has not succeeded 
> 
> Does that make sense?
> 
> Regards - Cemal 
> jWeekend 
> OO & Java Technologies, Wicket Training and Development 
> http://jWeekend.com
>               
> [1] http://cwiki.apache.org/WICKET/spring.html
> 
> 
> 
> pieter claassen-2 wrote:
>> 
>> My abstract basewebmodel constructor from which all my webmodels inherit
>> marks inself for Spring injection but still no injection takes place. Any
>> suggestions where I can look?
>> 
>> Can I run the injection in the constructor of an abstract model from
>> which I
>> inherit all my webmodels? I cannot see why not?
>> 
>> Thanks in advanced.
>> P
>> 
>> 
>> 
>> BaseWebModel.java
>> =================
>> ...
>>     public BaseWebModel(Long id) {
>>         this.id = id;
>>         InjectorHolder.getInjector().inject(this);
>>     }
>> 
>> here is an example of my TemplateWebModel that uses @SpringBean to set
>> TemplateFactory
>> TemplateWebModel.java
>> ===================
>> 
>> ...
>>     @SpringBean(name="TemplateFactory")
>>     private TemplateFactory templateFactory;
>> 
>> public TemplateWebModel(Template template) {
>>         super(template);
>>     }
>> 
>> 
>> 
>> P
>> 
>> On Fri, Sep 11, 2009 at 10:42 AM, jWeekend
>> <jweekend_for...@cabouge.com>wrote:
>> 
>>>
>>> Pieter,
>>>
>>> If you want to use Spring's @Configuarble you'll need to enable Load
>>> Time
>>> Weaving or Complie Time Weaving.
>>>
>>> To use @SpringBean with an object that is not a Wicket Component you
>>> need
>>> to
>>> InjectorHolder.getInjector().inject(this) on initialisation of your
>>> object.
>>>
>>> The benefit of the latter approach is that you do not need to introduce
>>> weaving and that Wicket will make sure you have a serialisable proxy
>>> injected.
>>>
>>> Regards - Cemal
>>> jWeekend
>>> OO & Java Technologies, Wicket Training and Development
>>> http://jWeekend.com
>>>
>>>
>>>
>>>
>>> Pieter Claassen wrote:
>>> >
>>> > I am using maven, spring 2.5.6, wicket 1.4 and am trying to inject my
>>> > DAO's
>>> > into my wicket models but I find that Spring just ignores my advice.
>>> >
>>> > My question:
>>> > 1. @SpringBean only works on stuff that inherits from Component. What
>>> do
>>> I
>>> > do with things like session and models that don't? I am trying to use
>>> > @Configurable but that is being ignored.
>>> > 2. My POM deps are below. What should I pull in to have @Configurable
>>> > working?
>>> > 3. BTW. When I comment the bean out of my XML config, then I do get an
>>> > error
>>> > so I am not sure if I am doing something very small wrong?
>>> >
>>> > Thanks.
>>> > Pieter
>>> >
>>> > pom.xml
>>> > =======
>>> > ...
>>> >        <dependency>
>>> >             <groupId>org.springframework</groupId>
>>> >             <artifactId>spring-core</artifactId>
>>> >             <version>${spring.version}</version>
>>> >         </dependency>
>>> >
>>> >         <dependency>
>>> >             <groupId>org.apache.wicket</groupId>
>>> >             <artifactId>wicket-spring</artifactId>
>>> >             <version>${wicket.version}</version>
>>> >       <!--Same results whether I include or exclude the next
>>> session-->
>>> >       <exclusions>
>>> >         <exclusion>
>>> >           <groupId>org.springframework</groupId>
>>> >           <artifactId>spring</artifactId>
>>> >         </exclusion>
>>> >       </exclusions>
>>> >         </dependency>
>>> > ....
>>> >
>>> >
>>> > TemplateWebModel.java
>>> > ==================
>>> > .....
>>> > @Configurable
>>> > public class TemplateWebModel extends
>>> AbstractDataSetWebModel<Template> {
>>> >
>>> >     private TemplateFactory templateFactory;
>>> >
>>> >     public TemplateFactory getTemplateFactory() {
>>> >         return templateFactory;
>>> >     }
>>> >
>>> >     public void setTemplateFactory(TemplateFactory templateFactory) {
>>> >        throw new RuntimeException("REACHED TEMPLATE FACTORY SET");
>>> //This
>>> > setter is never run!!!!
>>> >         //this.templateFactory = templateFactory;
>>> >     }
>>> > .....
>>> >
>>> > WicketApplicationDefinitition.xml
>>> > ==========================
>>> >
>>> > <?xml version="1.0" encoding="UTF-8"?>
>>> > <beans xmlns="http://www.springframework.org/schema/beans";
>>> >        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>> >           
>>> xmlns:context="http://www.springframework.org/schema/context";
>>> >        xsi:schemaLocation="
>>> > http://www.springframework.org/schema/beans
>>> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
>>> > http://www.springframework.org/schema/context
>>> > http://www.springframework.org/schema/context/spring-context-2.5.xsd";>
>>> >
>>> >     <context:annotation-config/>
>>> > <!--<aop:aspectj-autoproxy/>-->
>>> >
>>> > <!-- a bean that supplies my primary application database client -->
>>> >     <bean id="appDataSource"
>>> class="com.musmato.dao.ApplicationDBFactory"
>>> >         destroy-method="close">
>>> >         <constructor-arg>
>>> >             <ref bean="appConfig" />
>>> >         </constructor-arg>
>>> >     </bean>
>>> >
>>> > <!-- a bean that supplies a network database client for template
>>> uploads
>>> > -->
>>> >     <bean id="rootDataSource" class="com.musmato.dao.RootDBFactory"
>>> > destroy-method="close">
>>> >         <constructor-arg>
>>> >             <ref bean="appConfig" />
>>> >         </constructor-arg>
>>> >     </bean>
>>> > .....
>>> >     <bean id="TemplateFactory"
>>> class="com.musmato.dao.TemplateFactory">
>>> >         <property name="client" ref="appDataSource" />
>>> >     </bean>
>>> > ....
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Pieter Claassen
>>> > musmato.com
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Spring-annotations-fail-to-inject-into-webmodels-tp25396625p25397205.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
>>>
>>>
>> 
>> 
>> -- 
>> Pieter Claassen
>> musmato.com
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Spring-annotations-fail-to-inject-into-webmodels-tp25396625p25413489.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

Reply via email to