我正在为一个支持SpringBootTest的应用程序设置一个SpringBootTest。我们正在尝试使用Redis/Reddison设置二级缓存,hibernate被配置为在其属性中使用RedisRegionFactory。
在我们的集成测试中,我们希望使用我们在RedisServer类中配置的一个TestConfiguration bean来构造一个本地Redis实例。当测试启动时,它会失败,因为Hibernbate首先旋转了一个bean创建异常,而RedisRegionFactory实例由于RedisServer而陷入死IP连接。
我们尝试了几个技巧来让TestConfiguration类及其bean首先被加载,比如添加一个@Order注释。但是在调试过程中,我们发现在hibernate启动之前没有接触到配置bean。我们真的不想在这里重新定义自动配置的bean,是否有另一种方法可以强制SpringBootTest在JPA之前加载bean?
发布于 2022-07-25 07:36:10
如果不触及Spring当前自动配置的任何内容,我看不出有什么方法可以做到这一点。
您可以手动配置失败的bean,并添加一个额外的依赖项,例如,将@DependsOn使用到一个bean中,如果Redis可用,它将检查结构,因此bean的构造只在之后才会继续。
https://stackoverflow.com/questions/73103107
复制相似问题