Mi app-config.xml tiene una definición para mi grano de UserDao:No se pudo Autowire campo, pero tengo la definición
<bean id="userDao" class="com.blah.core.db.hibernate.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
tengo mi exploración de componente:
<context:component-scan base-package="com.blah" />
Mi acción index en mi HomeController funciona bien (muestra el contenido de un método en mi UserService a una plantilla de freemarker).
@Controller
public class HomeController {
@Autowired
private UserService userService;
@RequestMapping("/")
public ModelAndView Index() {
ModelAndView mav = new ModelAndView();
mav.setViewName("index");
mav.addObject("message", userService.sayHello());
mav.addObject("username", userService.getTestUser());
return mav;
}
El 'getTestUser()' es un nuevo método que hace referencia a UserDao, que parece:
@Service
public class UserServiceImpl implements UserService{
@Autowired
UserDao userDao;
public String sayHello() {
return "hello from user service impl part 2";
}
public String getTestUser() {
return userDao.getById(1L).getUsername();
}
}
estoy consiguiendo el error:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.blah.core.db.hibernate.UserDao com.blah.core.services.UserServiceImpl.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.blah.core.db.hibernate.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
- Lo podría ser el problema?
- Si no hice el autoenvío, ¿qué estaría haciendo en lugar de agregar @AutoWire en la definición de UserDao?
ok No estaba implementando el UserDao ahh! ¡Gracias! por cierto, ¿cómo se lee el registro de arranque de Spring o la memoria a través de la depuración?) ¡Esas son buenas habilidades que debería aprender! – Blankman
He actualizado la respuesta con referencias al registro y la depuración. :) – yclian