我刚刚开始学习Camel,我看到的第一件事就是
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:data/inbox?noop=true").to("file:data/outbox");
}
});
Run Code Online (Sandbox Code Playgroud)
我(合理地恕我直言)尝试替换
context.addRoutes(()->from("file:data/inbox?noop=true").to("file:data/outbox"));
Run Code Online (Sandbox Code Playgroud)
但那是无效的.
当我挖掘时,我发现lambdas适用于功能接口(如果接口符合条件,则暗示)但@FunctionalInterface注释只能应用于接口(足够公平)并且据我所知,没有抽象类的等效注释.当然,RouteBuilder是一个抽象类.
为什么lambdas仅限于接口?
界面和类之间的本质区别是什么使"功能类"不安全/不可预测/不合理?
我可以理解是否有一些限定符,例如抽象方法必须公开,但我无法解释为什么上述是不合理的.
我有一个Java控制台应用程序,我准备部署到Unix服务器上.我正在编写一个shell脚本来运行该应用程序.
我计划将我的shell脚本放在一个文件夹中,我的应用程序jar和依赖jar(spring等)再次放在另一个文件夹和属性文件(那些需要维护'live')的文件夹中.然后我会让我的shell脚本遍历'jars'和'properties'文件夹中的文件,将它们附加到类路径中,然后再调用java ...
这是一个"好"的部署结构吗?是否有关于如何安排文件以最大化可维护性和稳定性的指南?有没有明显的'错误'方法来做到最好避免?
我应该补充一点,对于以前的项目,我将所有shell脚本(那些启动java进程和那些没有进程的脚本)放入脚本文件夹,将我的应用程序jar放入库子文件夹中的库jar文件夹和外部资源进入配置子文件夹.然后我编写了一个显式加载所有文件的脚本.每当我升级库jar时,写作都需要很长时间才能完成.这一次,我想做得更好.此外,我觉得没有必要将我的应用程序JAR与库分开.