我创建了一个像这样的自定义Spring Data存储库
BaseRepositoryCustomImpl<T extends BaseEntity>
extends SimpleJpaRepository<T, Long>
implements BaseEntityRepository<T, Long> {
@Autowired
private MyCustomClass myCustomClass;
}
请注意MyCustomClass
在我的配置类中定义为@Bean
。然后使用我的自定义存储库,将其添加到我的配置类,如此
@Configuration
@Profile("jpa")
@EnableJpaRepositories(basePackages = {
"com.package.repository"
}, repositoryImplementationPostfix = "CustomImpl",
repositoryBaseClass = BaseRepositoryCustomImpl.class
)
除了myCustomClass
之外,一切都运转良好,null
始终为MyCustomClass
。我应该如何自动装配str
?如果在控制器等其他类中使用,则可以正确自动布线。
答案 0 :(得分:0)
更常见的问题是如何为非Spring托管类型自动装配实例。
您可以创建BeanUtil类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
@Service
public class BeanUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
public static <T> T getBean(Class<T> beanClass) {
return context.getBean(beanClass);
}
}
,然后通过以下方式使用它来获取bean:
UserRepository userRepository = BeanUtil.getBean(UserRepository.class);
受this启发