依赖性豆注入春季的通用实例变量



我正在使用Spring 4.1.5释放,Java 8用于我的应用程序。在查看课程时,需要考虑2个参数化,一个在班级级别,另一个在类实例变量上。在依赖注入时,我在类级别的参数化(因为我具有super((的构造函数(时并没有麻烦,而实例变量ServiceRerresResponseProcessor会导致错误之后。如果ServiceRorresponsePonseponsor变量从类和Bean注入中删除,我看不到错误。因此,定义通用实例变量有问题。

类:

public class ServiceResponseProcessor implements ResponseProcessor<T, R> {
private ErrorResponseProcessor<Error> serviceErrorResponseProcessor;
private ServiceInfoResponseProcessor serviceInfoResponseProcessor;
// respective getters and setters
}

豆注射:

<bean id="responseProcessor"
    class="com.path.ServiceResponseProcessor">
    <property name="serviceErrorResponseProcessor" ref="beanServiceErrorResponseProcessor" />
    <property name="serviceInfoResponseProcessor" ref="beanServiceInfoResponseProcessor" />
</bean>
<bean id="beanServiceErrorResponseProcessor"
    class="com.path.processor.ErrorResponseProcessor"/>
<bean id="beanServiceInfoResponseProcessor"
    class="com.path.processor.ServiceInfoResponseProcessor"/>

错误:

Error creating bean with name 'responseProcessor' defined in class path resource [config/bean-dependency.xml]: 
Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
    at com.path.ServiceResponseProcessor.testResponseProcessor(ServiceResponseProcessor.java:326)
    at com.path.ServiceResponseProcessor.testSteps(ServiceResponseProcessor.java:276)
Caused by: java.lang.reflect.MalformedParameterizedTypeException
    at com.path.ServiceResponseProcessor.testResponseProcessor(ServiceResponseProcessor.java:326)
    at com.path.ServiceResponseProcessor.testSteps(ServiceResponseProcessor.java:276)

我找到了使用弹簧4.1.5释放对我有用的东西,当类用于bean注入的类时,它不能在实例变量中使用generics。

类:

public class ServiceResponseProcessor implements ResponseProcessor<T, R> {
private ServiceErrorResponseProcessor serviceErrorResponseProcessor;
private ServiceInfoResponseProcessor serviceInfoResponseProcessor;
   // respective getters and setters
}

ServiceErrorResponseProcessor implements ErrorResponseProcessor<Error>{
   // implementation
}

豆注射:

<bean id="responseProcessor"
class="com.path.ServiceResponseProcessor">
<property name="serviceErrorResponseProcessor" ref="beanServiceErrorResponseProcessor" />
<property name="serviceInfoResponseProcessor" ref="beanServiceInfoResponseProcessor" />

最新更新