Rob*_*_UK 6 java spring apache-camel
我使用带模块的弹簧靴.我有一个包含多个子模块的父项目.
当我使用Contructor Autowiring配置路由时,Camel Routes无法启动.
我得到Total 0 routes, of which 0 are started像这样的启动构造函数.
private final ScanProcessor scanProcessor;
private final ScheduleProcessor scheduleProcessor;
private final TagProcessor tagProcessor;
private final LatestScanProcessor latestScanProcessor;
private final RabbitMqService rabbitMqService;
@Autowired
public DashboardRoute(ScanProcessor scanProcessor,
ScheduleProcessor scheduleProcessor,
TagProcessor tagProcessor,
LatestScanProcessor latestScanProcessor,
RabbitMqService rabbitMqService){
this.scanProcessor = scanProcessor;
this.scheduleProcessor = scheduleProcessor;
this.tagProcessor = tagProcessor;
this.latestScanProcessor = latestScanProcessor;
this.rabbitMqService = rabbitMqService;
}
@Override
public void configure() throws Exception {
from(CONSUME_SCHEDULE_ROUTE)
.routeId("consume-schedule")
.process(scheduleProcessor); // no strings
}
Run Code Online (Sandbox Code Playgroud)
当我不对任何豆子进行自动装配并对这样的路线进行处理时,整个过程都有效.
from(CONSUME_SCHEDULE_ROUTE)
.routeId("consume-schedule")
.process("scheduleProcessor") // notice this is a string
Run Code Online (Sandbox Code Playgroud)
骆驼是否支持弹簧路径Contructor自动装配?我是否需要采取一些额外的配置步骤才能正确处理?我更喜欢直接链接bean,当我重构它连接回来的类名时ok.
小智 1
我尝试了与您类似的示例,并且它工作正常。您可以确保您的路由类以及所有处理器类和服务类中都有@Compoent。
您也可以尝试在局部变量上添加@Autowired。(构造函数应该可以正常工作。这只是确保构造函数正常工作的额外步骤)
@Component
@ServletComponentScan(basePackages = "com.example.camel")
public class ServiceRoutes extends RouteBuilder {
@Autowired
private ScanProcessor scanProcessor;
@Autowired
private ScheduleProcessor scheduleProcessor;
@Autowired
private TagProcessor tagProcessor;
@Autowired
private LatestScanProcessor latestScanProcessor;
@Autowired
private RabbitMqService rabbitMqService;
@Override
public void configure() throws Exception {
from(CONSUME_SCHEDULE_ROUTE)
.routeId("consume-schedule")
.process(scheduleProcessor);
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |