1 回答

TA贡献1853条经验 获得超18个赞
它说你找不到标记为 Bean 等的 Class 类所以你需要有一个要注入的类声明为 @Bean ,@Component 等。
这是一个例子:
@Configuration
public class Config {
@Bean
public<T> Class<T> tClass(){
return (some class to be returned);// you need to generify or pass some type of class which you want
}
}
//Here is injecting with no problems
@Component
public class Test<T> {
private Class<T> tClass;
@Autowired
public Test(Class<T> tClass) {
this.tClass = tClass;
}
}
一些它如何更好地定义这样的架构,在这种情况下会更好:
public interface Foo<T> {
Class<T> getClassFromType();
}
@Component
public class FooIntegerImpl implements Foo<Integer>{
@Override
public Class<Integer> getClassFromType() {
return Integer.class;
}
}
@Component
public class FooStringImpl implements Foo<String>{
@Override
public Class<String> getClassFromType() {
return String.class;
}
}
@Component
public class Test {
private List<Foo> foo;
@Autowired
public Test(List<Foo> foo) {
this.foo = foo;
}
}
例如,出于这样的目的,您可以定义对所有情况都通用的通用 API,实际上您可以定义 AbstractCrudOperations 并在有人需要继承它时定义杂物,将定义需要存在的对象类型并将定义一些方法
实际上,在您的情况下,我不知道您要实现的逻辑,但基本错误是找不到 Class 作为 bean
我认为这对你有帮助
添加回答
举报