Camel Spring Boot扫描RouteBuilders的Spring上下文。 ˚From the documentation:
Camel自动配置从中收集所有RouteBuilder实例 Spring上下文并自动将它们注入提供的 CamelContext。这意味着用Spring创建新的Camel路由 启动启动器就像添加@Component注释类一样简单 你的类路径
有没有办法控制这个:包含/排除包或类。
我想注释某些RouteBuilders并让Camel排除那些。我的目的是稍后动态地将它们添加到CamelContext中。
答案 0 :(得分:2)
您可以使用设置为SpringBootTest注释的这些属性。
这些是 ant样式属性,它们会在您的 src 文件夹中进行搜索,以匹配 RouteBuilder s
具有模式的示例:
// Fix test runner
@RunWith(CamelSpringBootRunner.class)
// Your spring boot application with the main method
@SpringBootTest(classes = {SpringBootTestRunner.class},
// Finds all routes in your whole src folder that start with 'SomeRoute', e.g. SomeRouteOne
properties = {"camel.springboot.java-routes-include-pattern=**/SomeRoute*"})
public class SomeRouteOneTestCase {
... // Unit Tests
}
修复程序类别的示例:
// Fix test runner
@RunWith(CamelSpringBootRunner.class)
// Your spring boot application with the main method
@SpringBootTest(classes = {SpringBootTestRunner.class},
// Find the RouteBuilder 'SomeRouteTwo' in the package 'com.foo.bar' and nothing more
properties = {"camel.springboot.java-routes-include-pattern=com/foo/bar/TestRouteTwo"})
public class TestRouteTwoTestCase {
... // Tests
}
java-routes-exclude-pattern 的工作方式相同,只是排除了列出的路由构建器。
希望这会有所帮助。
礼物
克里斯