Thanks. It worked.

On Mon, Sep 21, 2009 at 1:13 AM, Ron Grimes <[email protected]> wrote:
> Typically, you would not inject your DAO bean into a service class method 
> that is not specifically a DAO setter method. There are at least two ways to 
> do this. I tend to use constructor injection, which would look like this:
>
> CONSTRUCTOR INJECTION
> <bean id="mDao" class="com.dao.MDaoImpl"/>
>
>  <bean id="aService" class="com.service.AServiceImpl">
>      <constructor-arg index="0" ref="mDao" />
>  </bean>
>
> @WebService(endpointInterface = "com.service.AService", 
> serviceName="AService")
> public class AServiceImpl implements AService
> {
>      private MDao mDao;
>
>      public AServiceImple(MDao mDao)
>      {
>            super();
>            this.mDao = mDao;
>      }
>
>      public String aM(String aKey)
>      {
>            mDao.someMethod();
>      }
> }
>
>
> SETTER INJECTION
> <bean id="mDao" class="com.dao.MDaoImpl"/>
>
>  <bean id="aService" class="com.service.AServiceImpl">
>      <property name="mDao" ref="mDao" />
>  </bean>
>
> @WebService(endpointInterface = "com.service.AService", 
> serviceName="AService")
> public class AServiceImpl implements AService
> {
>      private MDao mDao;
>
>      public String aM(String aKey)
>      {
>            mDao.someMethod();
>      }
>
>      public void setMDao(MDao mDao)
>      {
>            this.mDao = mDao;
>      }
> }
>
> I prefer constructor injection just because, if you have a few DAO beans to 
> inject, then the setter methods just add length to the service class (much 
> more than simple constructor injection)
>
> Ron Grimes
>
> ________________________________________
> From: Nishant Chandra [[email protected]]
> Sent: Sunday, September 20, 2009 5:42 AM
> To: [email protected]
> Subject: DI in an Impl class
>
> Hi,
>
> I have a WS impl like this:
>
> @WebService(endpointInterface = "com.service.AService", 
> serviceName="AService")
> public class AServiceImpl implements AService {
>
> public String aM(String aKey) {
>
> ...
> }
>
> }
>
> I have a bean definition:
>
> <bean id="mKDao" class="com.dao.MDao"/>
>
> How can I inject this "mKDao" in the aM method above? Will @Resource
> work or there is another way?
>
> In the servlet, I could use the statement below and get the bean.
> WebApplicationContext ctx =
> WebApplicationContextUtils.getWebApplicationContext(getServletContext());
>
> Nishant



-- 
Nishant Chandra
Hyderabad, India
Cell : +91 9949828480

Reply via email to