日期:2014-05-17  浏览次数:20690 次

关于Action注入ServiceImpl。求帮忙。
@Controller("loginAction")
public class LoginAction extends ActionSupport{

/**

*/
private static final long serialVersionUID = 7714793956302762476L;

private User user;

private UserService userService = new UserServiceImpl();




// public UserService getUserService() {
// return userService;
// }
//
// @Autowired
// public void setUserService(UserServiceImpl userService) {
// this.userService = userService;
// }

/*---------------------------------------------------------------*/

以上是Action的部分代码,我想在此利用spring在Action里面注入UserServiceImpl,结果存在异常说,类型不匹配。然后我把依赖注入的代码注释掉,直接new一个UserServiceImpl,问题就解决,其中,UserService是接口。我想问一下各位大神,为什么出现这种情况?怎样做才能实现依赖注入。(ps:依赖注入我用的是annotation的方式。在service层依赖注入dao的实现类也成功。)求帮忙。。






------解决方案--------------------
这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。

------解决方案--------------------
在类开头加个@Result(name="userServiceImpl")
但是前提是UserService的实现类是UserServiceImpl
然后把UserServiceImpl的首字母小写放到Result中Spring自动会去匹配

------解决方案--------------------
探讨
引用:

@Autowired
private UserService userService;


/*--------------------------------------------------*/

我有两个实现类继承了UserService的接口。
@Service("user……