java - SSH框架中写分页时service层中不能注入分页类
问题描述
service层
@Servicepublic class AuthorAdminServiceImpl implements IAuthorAdminService { @Resource private IAuthorAdminDao iauthoradmindao; @Resource PageUntil<AuthorAdmin> pageUntil;@Override public PageUntil<AuthorAdmin> findByPage(int currentPage) {pageUntil.setCurrentPage(currentPage);// 当前多少页int pageSize = 3;pageUntil.setPagesize(pageSize);// 最多显示多少记录int totalCount = iauthoradmindao.findCount();// 数据库中所有的记录pageUntil.setTotalCount(totalCount);double tc = totalCount;Double num = Math.ceil(tc / pageSize);// 页面显示的总页数=数据库的总记录数/最多显示多少记录pageUntil.setTotalPage(num.intValue());int begin = (currentPage - 1) * pageSize;// 当前页开头位置的索引List<AuthorAdmin> list = iauthoradmindao.findByPage(begin, pageSize);if(list==null){ System.out.println('list findByPage service error');}pageUntil.setList(list);return pageUntil; }
action层
public String listAuthorAdmin() {PageUntil<AuthorAdmin> pageuntil = iauthoradminservice.findByPage(currentPage);ActionContext.getContext().getValueStack().push(pageuntil);return 'listSuccess'; }
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’authorAdminAction’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’authorAdminServiceImpl’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lcy.until.PageUntil com.lcy.service.author.admin.AuthorAdminServiceImpl.pageUntil; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] 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)}----------Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’authorAdminServiceImpl’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lcy.until.PageUntil com.lcy.service.author.admin.AuthorAdminServiceImpl.pageUntil; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] 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)}----------Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lcy.until.PageUntil com.lcy.service.author.admin.AuthorAdminServiceImpl.pageUntil; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] 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)}----------Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.lcy.until.PageUntil] 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)}
如果不是使用注入而使用new的方法就行,请问为什么?
问题解答
回答1:PageUntil这个类也是要用@Component
回答2:你没有正确使用@Resource,导致配置文件里面找不到名称属性为'iauthoradmindao'的<bean>,故而注入失败!你可以将@Resource 更换成 @AutoWired 试试看。这两个注解的注入方式是不一样的,当然前提是你的xml文件中要配有'IAuthorAdminDao '类型的<bean>
详情参考:https://www.zhihu.com/questio...
回答3:我觉得 new出来最简单了。你这个类需要考虑到特殊的问题吗?
相关文章:
1. angular.js - 请教angularjs里html和js通信的问题2. angular.js - angularjs的问题:点击”选择图片“后,需要很长的时间才能选择图片3. angular.js - 用angular2-cli打包项目之后,跳转路由刷新会报404的错误4. angular.js - angular-ueditor使用中,插入图片,加载完成后不更新angularmodel的问题;5. node.js - 怎么在初始化的时候使得一个子组件不加载?6. angular.js - 有没有不需要先git clone xxxx的angular2的教程?7. angular.js - angular2 基础问题,求解答8. angular.js - ng-model如何绑定二选一的单选项框?9. angular.js - angularjs 如何用一组按钮完成单选10. javascript - jquery中的$.post()为什么不能跨域提交数据呢?