今天我被问到在我们当前的OSGi应用程序中使用Maven是否是个好主意.我们使用了Bndtools,因为它使开发变得尽可能简单.即使在应用程序运行期间,Bndtools也使用OBR来维护其他捆绑包和依赖项解析.
由于Maven广泛传播并且如此受欢迎,大多数人都尝试在OSGi环境中使用它.对我来说,这是两种不同的方法.OSGi有自己的依赖声明,MANIFEST.MF和Maven是一个pom,你可以在其中声明它们.因此,如果您同时使用它们,则会两次声明依赖项.当然,您可以使用Apache OSGi Maven插件来避免它,Maven负责创建MANIFEST.MF.但Maven存储库并不真正关心捆绑包.因此,您可能会引用非捆绑jar.
当然,使用Maven有一些优点,但将它与OSGi或特别是Bndtools结合起来真的是一件好事吗?
有人可以提供优点或缺点!有使用两者的实际经验吗?
在大多数情况下,我有很多组件具有由OSGi声明服务注入的相同类.这些服务将用于执行某些逻辑,这些逻辑对于所有派生组件都是相同的.因此,为避免重复代码,最好使用抽象类.是否有可能将DI引用方法(set/unset)移动到抽象类.我正在使用Bnd.
例如:
@Component
public class B implements IA {
private ServiceC sc;
@Reference
public void setServiceC(ServiceC sc) {
this.sc = sc;
}
public void execute() {
String result = executeSomethingDependendOnServiceC();
// do something with result
}
protected String executeSomethingDependendOnServiceC() {
// execute some logic
}
}
@Component
public class D implements IA {
private ServiceC sc;
@Reference
public void setServiceC(ServiceC sc) {
this.sc = sc;
}
public void execute() {
String result = executeSomethingDependendOnServiceC();
// do something different with result …Run Code Online (Sandbox Code Playgroud) 我是Docker的新手,如果有任何最佳实践指南来更新在非常大的分布式环境中在docker容器内运行的软件,我现在正试图解决这个问题.我已经发现了几个关于在docker等中更新MySQL数据库的帖子.它为任何存储数据的软件提供了很好的提示,但是如果你想更新其他部分或你自己的软件包或分发和使用的服务怎么办?其他几个码头图像通过docker-compose?
在这样的环境中是否有人具有真实生活经验,如果有的话,可以帮助我或其他新手了解docker中的最佳实践.
谢谢你的帮助!
我需要编写一个短随机数,它产生一个介于1到N之间的随机数,其中随机数增加了M的倍数.
例如:生成1到(N = 30)之间的数字,增加(M = 5)的倍数.唯一可能生成的数字可以是:1,5,10,15,20,25和30.希望你得到我的意思:)
通常,如果使用new Random().nextInt(30)+1,则会使数字增加1(1,2,3,4,5,6,7等)的倍数.那不是我想要的.
任何帮助,链接或方向非常感谢?
编辑:
生成的随机数序列可以包括1而不是0是该方法的要求之一.确切地说,序列始终以下限(min)开始.在该示例中,下限是1,因此序列中不能为零.我知道这很奇怪,但这些是我必须遵循的要求;)