微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 自动装配构造函数时没有路径的Camel

我使用带模块的弹簧靴.我有一个包含多个子模块的父项目.@H_404_2@

当我使用Contructor Autowiring配置路由时,Camel Routes无法启动.@H_404_2@

我得到Total 0路由,其中​​0是启动时启动这样的构造函数.@H_404_2@

@H_404_2@

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
}

当我不对任何豆子进行自动装配并对这样的路线进行处理时,整个过程都有效.@H_404_2@

@H_404_2@

 from(CONSUME_SCHEDULE_ROUTE)
   .routeId("consume-schedule")
   .process("scheduleProcessor")  // notice this is a string

骆驼是否支持弹簧路径Contructor自动装配?我是否需要采取一些额外的配置步骤才能正确处理?我更喜欢直接链接bean,当我重构它连接回来的类名时ok.

最佳答案
我尝试了与你相似的例子,它工作正常.您可以确保在路由类和所有处理器类和服务类中都有@Compoent.@H_404_2@

您也可以尝试在局部变量上添加@Autowired. (构造函数应该可以正常工作.这只是确保构造函数工作的额外工具)@H_404_2@

@H_404_2@

@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); 
    }
}

希望这可以帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐