You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
package cn.iocoder.dashboard.config ;
import com.github.fppt.jedismock.RedisServer ;
import org.redisson.spring.starter.RedissonAutoConfiguration ;
import org.springframework.boot.autoconfigure.AutoConfigureBefore ;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration ;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties ;
import org.springframework.boot.context.properties.EnableConfigurationProperties ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Configuration ;
import org.springframework.context.annotation.Lazy ;
import java.io.IOException ;
@Configuration ( proxyBeanMethods = false )
@Lazy ( false ) // 禁用懒加载,因为需要保证 Redis Server 必须先启动
@EnableConfigurationProperties ( RedisProperties . class )
@AutoConfigureBefore ( { RedisAutoConfiguration . class , RedissonAutoConfiguration . class } ) // 在 Redis 自动配置前,进行初始化
public class RedisTestConfiguration {
/**
* 创建模拟的 Redis Server 服务器
*/
@Bean ( destroyMethod = "stop" )
public RedisServer redisServer ( RedisProperties properties ) throws IOException {
RedisServer redisServer = new RedisServer ( properties . getPort ( ) ) ;
// TODO 芋艿:一次执行多个单元测试时,貌似创建多个 spring 容器,导致不进行 stop。这样, 就导致端口被占用, 无法启动。。。
try {
redisServer . start ( ) ;
} catch ( Exception ignore ) { }
return redisServer ;
}
}