为了账号安全,请及时绑定邮箱和手机立即绑定

spring中在私有变量和构造方法上使用@aware报错,在setter方法上就没有报错。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'injectionServiceImpl' defined in file [E:\myexlipseworkspace\Spring2\bin\injectionannotation\InjectionServiceImpl.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [injectionannotation.InjectionServiceImpl]: No default constructor found; nested exception is java.lang.NoSuchMethodException: injectionannotation.InjectionServiceImpl.<init>()

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1021)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)

at org.spr


正在回答

3 回答

在私有变量上 或者 setter方法上@autowired,如果程序中还有自己自行撰写的构造函数,就会报错

因为如果自行撰写了构造函数,编译程序就不会自动建立默认构造函数,所以会初始化失败

0 回复 有任何疑惑可以回复我~

下图调用了该类的默认构造器,不会报错

http://img1.sycdn.imooc.com//59423e8d0001a11906760559.jpg

下图调用了自己重写的构造器不会报错。

http://img1.sycdn.imooc.com//59423e8e00011ba506480557.jpg

http://img1.sycdn.imooc.com//59423e8f0001131607900563.jpg

下图重写构造器没有使用注释,set方法无法去找到bean

http://img1.sycdn.imooc.com//59423e9100010ec807030564.jpg


1 回复 有任何疑惑可以回复我~

No default constructor found;

setter设置注入就是调用setXXX方法,但是需要保留默认构造方法

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

spring中在私有变量和构造方法上使用@aware报错,在setter方法上就没有报错。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信