Redisson 配置 setBeanFactory 自动装配 beans
Redisson config setBeanFactory autowiring beans
我在此处定义了一个任务 class:
{
@Autowired
private CarPainter carpainter;
private String color;
private Car car;
public CarPainterTask(Car car, String color)
{
this.car = car;
this.color = color;
}
public Car call()
{
if(car.getColor().equals(color))
{
return car;
}
carPainter.paint(car);
return car;
}
}
我希望能够 @Autowired
将服务纳入我的任务 class 但也能够输入一些参数
我已经尝试为我的 Redisson 节点创建 @Configuration
class
@Bean
public RedissonNode createRedissonWorker()
{
RedissonNodeConfig nodeConfig = new RedissonNodeConfig(redissonClient.getConfig());
nodeConfig.setExecutorServiceWorkers(Collections.singletonMap("carService", 1));
nodeConfig.setBeanFactory(applicationContext);
RedissonNode node = RedissonNode.create(nodeConfig);
node.start();
return node;
}
让 Redisson 从 Springboot 的 bean 容器中注入 CarPainter
bean,但这不起作用...
有没有办法实现我在这里需要的东西?
在您的 createRedissonWorker()
方法中,使用 BeanFactory
实例将其传递给 setBeanFactory()
而不是 ApplicationContext
,它应该可以正常工作。
我在此处定义了一个任务 class:
{
@Autowired
private CarPainter carpainter;
private String color;
private Car car;
public CarPainterTask(Car car, String color)
{
this.car = car;
this.color = color;
}
public Car call()
{
if(car.getColor().equals(color))
{
return car;
}
carPainter.paint(car);
return car;
}
}
我希望能够 @Autowired
将服务纳入我的任务 class 但也能够输入一些参数
我已经尝试为我的 Redisson 节点创建 @Configuration
class
@Bean
public RedissonNode createRedissonWorker()
{
RedissonNodeConfig nodeConfig = new RedissonNodeConfig(redissonClient.getConfig());
nodeConfig.setExecutorServiceWorkers(Collections.singletonMap("carService", 1));
nodeConfig.setBeanFactory(applicationContext);
RedissonNode node = RedissonNode.create(nodeConfig);
node.start();
return node;
}
让 Redisson 从 Springboot 的 bean 容器中注入 CarPainter
bean,但这不起作用...
有没有办法实现我在这里需要的东西?
在您的 createRedissonWorker()
方法中,使用 BeanFactory
实例将其传递给 setBeanFactory()
而不是 ApplicationContext
,它应该可以正常工作。