spring DAO泛型依赖注入

jiawazhou 2009-11-11 02:56:11
java.lang.IllegalStateException: Autowired annotation requires at least one argument: public void com.strogit.assetsmanagement.service.impl.AlarmServiceImpl.setAlarmDao()
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$2.doWith(AutowiredAnnotationBeanPostProcessor.java:307)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:466)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:443)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.findAutowiringMetadata(AutowiredAnnotationBeanPostProcessor.java:299)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(AutowiredAnnotationBeanPostProcessor.java:179)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:745)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:448)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.j

怎么会出现这样的问题


public BaseDAOImpl<Alarm,java.lang.Integer> alarmDao;

@Autowired
public void setAlarmDao() {
alarmDao=new BaseDAOImpl<Alarm,Integer>(Alarm.class);
}

用的是注解配置
...全文
710 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
panhaichun 2009-11-24
  • 打赏
  • 举报
回复
@Autowired
public void setAlarmDao() {
alarmDao=new BaseDAOImpl <Alarm,Integer>(Alarm.class);
}


你都直接new出来了,还要注入啥??

要注入肯定要有东西才能注入,参数都没有怎么注入。。。
howsun_zh 2009-11-11
  • 打赏
  • 举报
回复
既然用了注解,就不需要getter & setter了。直接如下:

@Autowired public BaseDAOImpl <Alarm,java.lang.Integer> alarmDao;

Spring启动后alarmDao就有值。
wanwan108 2009-11-11
  • 打赏
  • 举报
回复
搞错了。。。应该是你spring配置文件里面的问题吧,把你那个service注入dao的代码发上来
wanwan108 2009-11-11
  • 打赏
  • 举报
回复
Autowired annotation requires at least one argument

AlarmServiceImpl.setAlarmDao() 你的service里面的 dao属性的set方法没有参数???
道光2008 2009-11-11
  • 打赏
  • 举报
回复
Autowired annotation requires at least one argument
Autowired 至少需要一个变量
jiawazhou 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guodong66 的回复:]
alarmDao=new BaseDAOImpl <Alarm,Integer>(Alarm.class);

没见过这么写,不才啊,呵呵, 没用注解配置过,都用配置文件来着。
[/Quote]
还是很谢谢你关注!
guodong66 2009-11-11
  • 打赏
  • 举报
回复
alarmDao=new BaseDAOImpl <Alarm,Integer>(Alarm.class);

没见过这么写,不才啊,呵呵, 没用注解配置过,都用配置文件来着。

67,512

社区成员

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

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