java - Spring:如何 @Autowire 一个类
问题描述
我正在创建一个片段存储库,我想注入一个Class<T>
,但这似乎是不可能的。是吗?
public interface MongoRepositoryExtension<T, ID> {
List<T> findAll(Query query, Class<T> entityClass);
List<T> findAll(Query query, Class<T> entityClass, String collectionName);
UpdateResult upsert(Query query, Update update, Class<?> entityClass);
UpdateResult upsert(Query query, Update update, String collectionName);
UpdateResult upsert(Query query, Update update, Class<?> entityClass, String collectionName);
}
@Repository
public class MongoRepositoryExtensionImpl<T, ID> implements MongoRepositoryExtension<T, ID> {
@Autowired
private Class<T> entityClass; // Error
@Autowired
private MongoTemplate mongoTemplate;
@Override
public List<T> findAll(Query query) {
return mongoTemplate.find(query, entityClass);
}
@Override
public List<T> findAll(Query query, String collectionName) {
return mongoTemplate.find(query, entityClass, collectionName);
}
@Override
public UpdateResult upsert(Query query, Update update) {
return mongoTemplate.upsert(query, update, entityClass);
}
@Override
public UpdateResult upsert(Query query, Update update, String collectionName) {
return mongoTemplate.upsert(query, update, collectionName);
}
@Override
public UpdateResult upsert(Query query, Update update, Class<?> entityClass, String collectionName) {
return mongoTemplate.upsert(query, update, entityClass, collectionName);
}
}
我们如何实现这一目标?
解决方案
推荐阅读
- javascript - 如何在多维数组中找到彼此相邻的相同值?
- angular - 在离子选择中迭代枚举
- javascript - 如何为表格项提供单独的值以在 HTML 中单击鼠标右键
- junit - 使用“When ... thenReturn”返回的 Mockito 导致 NullPointerException
- java - Stripe-java 客户端不会删除计划,而 curl 会删除
- python - Groovy 没有正确接收来自 python 脚本的 Map
- c# - 重新绑定 Datacontext 以更新 oxyplot 图
- html - 了解如何设置按钮的高度
- python - 有没有一种优雅的方法可以防止 numpy 在空列表上拍打 dtype?
- java - 如何将 Map 转换为 Java.util.Properties?