It's not dependency injection if you are looking up and grabbing a service in a
factory. Nothing is being injected. The beauty of DI is too vast to describe
in email, but it is a more declarative model. You declare a service with an
interface in the DI container. You then declare that you want to use that
service in your "thing" by adding it as a member variable. Assuming your thing
has told the DI container that it would like its services injected, the
container will see the variable with the matching interface and "inject" a
fully instantiated service based on what you declared earlier. (As part of the
declaring a service you register the interface AND tell it what implementation
to use).
There are lots of options like wiring by name rather than type, annotations vs.
xml configuration, etc. I suggest you pick up Spring In Action (Manning), read
the Spring Framework documentation and complete the Appfuse tutorials. That
should help with your first two questions.
As for question #3: Each datasource is declared as a service with Spring. You
would then wire the correct datasource to the correct DAO using the DI
container xml or annotations.
Finally, in the same file you configure datasources
(applicationContext-resources.xml) there is a small block there for what are
called PropertyPlaceholders. If you add a reference to your config file there
(and put it where you say it is) you can use a nifty Spring 3.0 feature. Where
you want that value in your object you can annotate a member variable with
@Value(${"property.name"}).
-D
On Mar 23, 2010, at 11:44 PM, mlounnaci wrote:
> Hello,
>
> Thanks for answer
>
> I made that because I want to use a sort of dependency injection in my
> application. Is there a simpler way to do it?
>
>
>
> Other questions:
>
>
>
> 1- How to call a DAO function from another class inside my appfuse
> application? I tried to instantiated the DAOHibernate class but it didn’t
> work (NullPointerException when calling a function)
>
> 2- I my application I have two access two databases : MySql & SQL
> Server, how to load hibernate configuration for the second database?
>
> 3- I want to use a configuration file to store some private params. What
> is the best way?
>
>
>
> I am sorry for the length of my question.
>
> Regards
>
>
>
>
>
> From: mraible [via AppFuse] [mailto:[hidden email]]
> Sent: Tuesday, March 23, 2010 3:41 PM
> To: mlounnaci
> Subject: Re: applicationContext.xml not found
>
>
>
> Why do you want to do this? Why not simply inject the service you're looking
> for into your WebService class?
>
> On Mar 23, 2010, at 3:20 AM, mlounnaci wrote:
>
>
> >
> >
> > Hello friends
> >
> > I tried to use the following inside my webservice method :
> >
> > BeanFactory factory = new XmlBeanFactory(new
> > ClassPathResource("/WEB-INF/applicationContext.xml"));
> >
> > The exception resulted:
> >
> > .....org.springframework.beans.factory.BeanDefinitionStoreException:
> > IOException pars
> > ing XML document from class path resource
> > [/WEB-INF/applicationContext.xml];
> > nested excep
> > tion is java.io.FileNotFoundException: class path resource
> > [/WEB-INF/applicationContext.xml] cannot be opened because it does not
> > exist
> >
> > How can i locate my applicationContext.xml file?
> >
> > Thanks for help.
> > --
> > View this message in context:
> > http://n4.nabble.com/applicationContext-xml-not-found-tp1678836p1678836.html
> > Sent from the AppFuse - User mailing list archive at Nabble.com.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
>
> View message @
> http://n4.nabble.com/applicationContext-xml-not-found-tp1678836p1679257.html
> To start a new topic under AppFuse - User, email [hidden email]
> To unsubscribe from AppFuse - User, click here.
>
>
>
>
> View this message in context: RE: applicationContext.xml not found
> Sent from the AppFuse - User mailing list archive at Nabble.com.