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");
}
}
------解决思路----------------------
好像是用了注解方式注入,那setter或field上得有相应的注解啊
------解决思路----------------------
sorry,不过我不清楚@Resource能不能用于注解,看到的多好像是@Autowired
------解决思路----------------------
@Autowired 在定义 private CategoryService categoryService;的上面
------解决思路----------------------

------解决思路----------------------
@Resource
public void setCategoryService(CategoryService categoryService) {
this.categoryService = categoryService;
}
把@Resource改成@Resource(name="categoryService")试试