Я пытаюсь использовать компонент, созданный во время запуска, и использовать его во время выполнения;оба класса стереотипны, но находятся в разных пакетах.Я не могу на всю жизнь восстановить redisSession с @ Autowired
@ConfigurationProperties(prefix = "redis")
@Configuration
@ConditionalOnProperty(name = "redis.enabled", havingValue = "true")
public class RedisSession {
private static Logger log = LoggerFactory.getLogger(RedisSession.class);
private String hostname;
private int port;
private String password;
private StatefulRedisConnection redisConnection;
private RedisClient redisClient;
@Bean
public RedisAsyncCommands asyncRedisSession() {
RedisURI redisURI = RedisURI.builder()
.withHost(hostname)
.withPort(port)
.withPassword(password)
.build();
redisClient = RedisClient.create(redisURI);
redisConnection = redisClient.connect();
return redisConnection.async();
}
(отдельный пакет)
@Component
public class RedisFieldMappers {
@Autowired
RedisAsyncCommands redisSession; //redisSession is null
public HashMap<String, HashMap<String, Object>> getColumnDetails(ArrayList idList,
String redisSetPrefix, Map<String, String> redisMapper,
String... fieldNames) throws ExecutionException,
InterruptedException {
redisSession.hgetall("foo"); //redisSession is null
}