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

为什么spring的注解得到值为null呢
本帖最后由 coolboyyzy 于 2013-03-22 11:15:08 编辑
controller
@Component
public class IndexController implements Controller {
private CategoryService categoryService;

public CategoryService getCategoryService() {
return categoryService;
}
@Resource
public void setCategoryService(CategoryService categoryService) {
this.categoryService = categoryService;
}

public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("categoryService:"+categoryService);
List<Category> list=categoryService.list();
request.setAttribute("list",list);
return new ModelAndView("common/index");
}

}

错误:打印categoryService:null
service:
@Component("categoryService")
public class CategoryServiceImpl implements CategoryService {
private CategoryDAO categoryDAO;
public CategoryDAO getCategoryDAO() {
return categoryDAO;
}
@Resource
public void setCategoryDAO(CategoryDAO categoryDAO) {
this.categoryDAO = categoryDAO;
}

public List<Category> list() {
return categoryDAO.list();
}

}

daoimpl:
@Component("categoryDAO")
public class CategoryDAOImpl implements CategoryDAO {
private HibernateTemplate hibernateTemplate;

public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

public List<Category> list() {

return hibernateTemplate.find(" from Category");
}

}
spring

------解决方案--------------------
好像是用了注解方式注入,那setter或field上得有相应的注解啊
------解决方案--------------------
引用:
引用:好像是用了注解方式注入,那setter或field上得有相应的注解啊我有在set上@Resource呀

sorry,不过我不清楚@Resource能不能用于注解,看到的多好像是@Autowired
------解决方案--------------------
@Autowired 在定义  private CategoryService categoryService;的上面
------解决方案--------------------
那我说的多余了 
------解决方案--------------------
@Resource
    public void setCategoryService(CategoryService categoryService) {
        this.categoryService = categoryService;
    }
把@Resource改成@Resource(name="categoryService")试试