SpringMVC Dao层注解,用@Component不报错,而用@Repository报错

sinat_32060757 2015-10-16 02:43:14
各位大神求教,为何我这注解用@Component不报错,而用@Repository报错,下附代码和错误
代码结构:
AbstractDao:
spring-hibernate.xml配置:
Dao层这里继承AbstractDao,用@Repository会报错
AbstractService:


具体错误:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uploadController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private me.antinomy.hibernate.service.TmApplicationService me.antinomy.controller.UploadController.applicationService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected me.antinomy.hibernate.dao.TmApplicationDao me.antinomy.hibernate.service.AbstractService.applicationDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tmApplicationDao' defined in file [D:\EclipseR\hangteng-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\TinyMobileControlCenter\WEB-INF\classes\me\antinomy\hibernate\dao\TmApplicationDao.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class me.antinomy.hibernate.dao.TmApplicationDao]: Common causes of this problem include using a final class or a non-visible class; nested exception is org.springframework.cglib.core.CodeGenerationException: java.lang.ClassCastException-->java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1122)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5229)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5516)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
...全文
2379 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Me_小叶子 2015-10-23
  • 打赏
  • 举报
回复
为什么说我没有权限结贴呢,难道是因为我用QQ登陆的吗。。
Me_小叶子 2015-10-23
  • 打赏
  • 举报
回复
引用 9 楼 phil_jing 的回复:
不好意思没看到你已经有这个配置了,可以改成整包扫描的啊,还有如果有 <context:component-scan> 后,就可以将 <context:annotation-config> 移除了
您好,已找到问题所在了,是Spring4的问题,主要是CGLIB报错:Could not generate CGLIB subclass of class,最后发现是我Spring版本问题!
4A46 2015-10-22
  • 打赏
  • 举报
回复
不好意思没看到你已经有这个配置了,可以改成整包扫描的啊,还有如果有 <context:component-scan> 后,就可以将 <context:annotation-config> 移除了
4A46 2015-10-22
  • 打赏
  • 举报
回复
加上这个扫描配置
<context:component-scan base-package="整个web包"></context:component-scan>
Me_小叶子 2015-10-21
  • 打赏
  • 举报
回复
引用 2 楼 shijing266 的回复:
另:关于@Repository、@Service、@Controller 和 @Component的区别
额,第一次发帖,第一次回复,第一条没引用成功,不要介意哈!
Me_小叶子 2015-10-21
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
http://forum.spring.io/forum/spring-projects/data/47908-classcastexception-parameterizedtype
抱歉我英文不过关,没能找到解决办法。我现在发现是CGLIB报错:Could not generate CGLIB subclass of class。
Me_小叶子 2015-10-21
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/391843768
您好,@Repository("applicationDao") 已试过,没有效果!我用的是Spring4.0,现在找到是CGLIB 报错Could not generate CGLIB subclass of class,在这里http://blog.csdn.net/yangxt/article/details/19970323有解释,但是还是没能解决。。
qiuqiupeng 2015-10-17
  • 打赏
  • 举报
回复
repo是spring-data-jpa,需要增加配置扫描拦截器
tony4geek 2015-10-16
  • 打赏
  • 举报
回复
http://forum.spring.io/forum/spring-projects/data/47908-classcastexception-parameterizedtype
  • 打赏
  • 举报
回复
@Repository 指定名称:@Repository("applicationDao") 这样试试

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧