我有2个班弹簧构造函数依赖注入问题
public class Abcd{
private String username;
private String password;
public Abcd(@Value("${username}") String userName, @Value("${password}") String password) {
...
}
public String retrieveValues(){
......
return "someString";
}
}
public class SomeClass{
@Autowired
private Abcd obj;
public String method1(){
obj.retrieveValues();
}
我有一个xml如下。
<context:annotation-config />
<context:property-placeholder location="classpath:applNew.properties" />
<bean id="abcd" class="com.somecompany.Abcd">
<constructor-arg type="java.lang.String" value="${prop.user}" />
<constructor-arg type="java.lang.String" value="${prop.password}" />
</bean>
<bean id="someclass"
class="com.differentcompany.SomeClass">
</bean>
当我生成项目并启动服务器,我看到下面的例外。
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'abcd' defined in URL []: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class []: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
我不明白可能是什么问题做一个构造函数注入这种方式。有没有解决方案?
你为什么在Abcd的构造函数中传递'@ Value'如果你传递了v通过春天的线索(通过'$ {prop.user}')? – sfat
@AndreiSfat:我试图不传递值,然后我看到另一个异常类似的异常。 – iuser
出于某种原因,你有cglib代理的东西在那里。你能发布完整的spring配置吗? – mbelow