Konnte nicht autowire Feld, aber ich habe die definition

Meine app-config.xml eine definition für meine UserDao bean:

  <bean id="userDao" class="com.blah.core.db.hibernate.UserDaoImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

Habe ich meine Komponente Scannen:

<context:component-scan base-package="com.blah" />

Meiner index action in meinem HomeController funktioniert gut (es gibt den Inhalt einer Methode, die auf meine UserService zu einem freemarker template).

@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;
    }

Den 'getTestUser()' ist eine neue Methode, die einen Bezug zu UserDao sieht es so aus:

@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();

    }


}

Bin ich immer die Fehlermeldung:

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)}
  1. Was könnte das Problem sein?
  2. Wenn ich nicht tun autowire, was würde ich tun, anstatt die @AutoWire auf dem UserDao-definition.
InformationsquelleAutor Blankman | 2010-07-19
Schreibe einen Kommentar