Vis*_*-CQ 4 service osgi annotations sling aem
我读过有关的区别几篇文章@Service和@Component。现在我明白@Component是用户将对象注释为 OSGi 组件,然后它的生命周期将由 OSGi 管理。但是,@Service未知需要将对象声明为服务。如果在声明为组件的对象中编写业务逻辑会发生什么?
我也想知道下面的语句是什么意思:
组件可以引用/调用(使用容器注入 – @Reference)其他服务,但不能引用/调用组件。换句话说,一个组件不能被注入到另一个组件/服务中。只有服务可以注入到另一个组件中。
问题 1:
Apache Felix 中的@Service 注释是什么?
@Service 注解定义了组件是否提供服务接口以及提供哪些服务接口。
您应该明白,这是关于OSGi 服务概念,而不是用 描述的声明性服务 (DS) 概念@Component。
避免使用Felix SCR(包org.apache.felix.scr.annotations)中的注释。
http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html:
注释本身不支持 R6 或更高版本的新功能。建议使用官方的 OSGi 注释来代替声明性服务。
使用@Component来自包org.osgi.service.component.annotations,这个注解取代了@Component和@Service来自菲利克斯。
问题2
如果在声明为组件的对象中编写业务逻辑会发生什么?
碰巧工作正常。
问题 3
我也想知道下面的语句是什么意思:
组件可以引用/调用(使用容器注入 – @Reference)其他服务,但不能引用/调用组件。换句话说,一个组件不能被注入到另一个组件/服务中。只有服务可以注入那里的另一个组件。
这就是组件在 OSGi 中共享功能的方式。它们以 OSGi 服务的形式提供它们的特性。但是当 OSGi 将对象注入到引用中时,你就得到了你的组件。
奖励:阅读这篇文章:https : //medium.com/adobetech/using-the-osgi-declarative-service-in-aem-6-4-21102f649d54
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |