配置:
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" enabled="true" immediate="true" name="printing">
<implementation class="printing.PrinterManager"/>
<service>
<provide interface="service.printing.IPrinterManager"/>
</service>
</scr:component>
班级:
public class PrinterManager implements IPrinterManager {
public void activate(BundleContext ctx) {
System.err.println("hello");
}
public void deactivate(BundleContext ctx) {
System.err.println("bye");
}
}
当我在我的代码中的其他地方注入该类的对象时:
@Inject
IPrinterManager pm;
我是否总能获得该课程的相同实例? 如果它不是单例,如何在osgi / equinox工具的帮助下使该实例成为单例? (我知道如何用java / vanilla的方式编写单例,这不是我的问题)