@Autocâblés et @Service de travail de contrôleur, mais pas à partir d'un autre package

J'ai besoin d'aide pour comprendre le concept derrière @Autowired et @Service. J'ai un DAO défini avec @Service et contrôleur avec @Autowired et tout semble bien fonctionner, cependant, j'utilise le même @Autowired dans une classe différente, alors il ne fonctionne pas.

Exemple:

Service

@Service
public class MyService {
    private JdbcTemplate jdbcTemplate;

    @Autowired
    public void setDataSource (DataSource myDataSource) {
        this.jdbcTemplate = new JdbcTemplate(myDataSource);
    } 

    public void testUpdate(){
            jdbcTemplate.update("some query");
    }
}

Contrôleur

package com.springtest.mywork.controller;

@Controller
@RequestMapping(value = "/test.html")
public class MyController
{
  @Autowired
  MyService myService;

  @RequestMapping(method = RequestMethod.GET)
  public String test(Model model)
  {
    systemsService.testUpdate();
    return "view/test";
  }
}

Ci-dessus fonctionne très bien. Cependant, Si je veux utiliser MyService dans un POJO ensuite, il ne fonctionne tout simplement pas. Exemple:

package com.springtest.mywork.pojos;
public class MyPojo {

    @Autowired
    MyService myService;

    public void testFromPojo () {
        myService.someDataAccessMethod(); //myService is still null
    }
}

Printemps Config:

<beans>
    <mvc:annotation-driven />
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <context:component-scan base-package="com.springtest.mywork" />
    <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb" />
        <property name="username" value="hello" />
        <property name="password" value="what" />
    </bean>

    <bean name="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>
 </beans>
  • Est MyPojo instancié par le Printemps?
  • Je n'ai pas fait n'importe quoi pour MyController dans config.xml donc, je ne l'ai pas fait pour MyPojo soit. Que dois-je faire?
  • Vous pouvez poster votre Printemps config?
  • mise à jour avec le printemps config ajoutée au bas
InformationsquelleAutor birdy | 2012-10-12