我是春天新手,我也一直在阅读春季在线参考。
我有一个关于使用autowire注释的问题,基本上我有一个Web应用程序,例如UserController.java
,UserManagerService.java
和UserDao.java
。
请在下面找到伪代码:
@Controller
public class UserController
{
@autowire UserManagerService userManagerService;
public String validateUser(String userpswrd,String username){
return userManagerService.validateUser(userpswrd,username);
}
}
UserManagerServiceImpl:
@Service
public class UserManagerServiceImpl{
@autowire UserDao userDao;
public String validateUser(String userpswrd,String username){
return userDao.validateUser(userpswrd,username);
}
我知道我需要将以下内容放在我的applicationContext.xml中才能工作:
<context:component-scan base-package="com.*" />
<!-- This tells Spring to activate annotation-driven transactions -->
<tx:annotation-driven />
我的问题是我需要在applicationContext.xml文件中将UserDao和UserManagerService定义为bean,以便autowire注释UserManagerService
和UserDao
能够工作吗?
提前感谢您的帮助
答案 0 :(得分:1)
否......组件扫描将检测所有@Component
相关bean(包括`@ Service,@ Repository,@ Controller等)。因此,您不需要明确定义bean,因为这将无视组件扫描和自动布线的需要。