開發外掛程式

開發人員 > 開發人員指南 > 開發外掛程式

Apache ActiveMQ Classic 是基於 POJO 模型和依賴注入。如果您正在為 ActiveMQ Classic 開發 攔截器 或其他組件或外掛程式,那麼您應該做的第一件事就是像編寫其他 Spring 組件一樣開發程式碼,使用依賴注入。

依賴注入

有些人偏好使用基於建構子的注入,因為這樣就不需要單獨的生命週期start()方法 - 而其他人則發現使用基於屬性的注入稍微靈活一點,並且更容易映射到 XML 組態檔。這個選擇由您決定。對於複雜的建立物件,您可以考慮編寫一個 FactoryBean。有關使用 Spring 編寫 POJO 的更多詳細資訊,請參閱他們的文件

自訂 XML

使用 ActiveMQ Classic,您可以使用常規的 Spring.xml 語法來設定項目。然而,為了產生更簡潔、更容易閱讀和編輯的 XML,我們使用 XBean 自動產生對自訂 XML 的支援。

如果您希望您的 POJO 擁有自己的自訂 XML,您可能需要遵循以下原始碼範例,以便與 XBean 良好協作。基本上,您需要在 javadoc 註解中新增一個 XBean 註解,以告知 XBean 如何將 POJO 映射到自訂 XML。這看起來應該像這樣

/**
 * @org.apache.xbean.XBean element="foo"
 */
public class MyExtension {
...
}

您可以省略元素組態。有關可用註解選項的更多詳細資訊,請參閱此處

如果您將您的外掛程式提交給 ActiveMQ Classic 專案,它最終將會包含在 maven 建置步驟中,以建立 XBean 成品作為 jar 的一部分(在 META-INF/services 區域中)。

然而,如果您正在為 ActiveMQ Classic 編寫外部外掛程式,則您需要將 maven-xbean-plugin 新增到您的 Maven 2 建置中。請參考 activemq-spring/pom.xml 作為使用此外掛程式的範例。

在沒有自訂 XML 的情況下設定外掛程式

如果您想設定沒有實作自訂 XML 的外掛程式,您可以將外掛程式定義為「常規」Spring bean,並在 broker 的 plugins 屬性中引用它們。例如,

<broker useJmx="true" xmlns="https://activemq.dev.org.tw/schema/core" plugins="#loggingPlugin">
 ...
</broker>

<bean id="loggingPlugin" 
      class="org.apache.activemq.broker.util.LoggingBrokerPlugin"
/>

請注意,如果您在 <plugins/> 標籤內設定了一些 XBean 外掛程式,則此機制將無法運作。在這種情況下,您也必須在該標籤內定義外掛程式(使用適當的 schema 定義)。例如,

<plugins>
    <simpleAuthenticationPlugin>
      <users>
        <authenticationUser username="system" password="manager"
          groups="users,admins"/>
        <authenticationUser username="user" password="password"
          groups="users"/>
        <authenticationUser username="guest" password="password" groups="guests"/>
      </users>
    </simpleAuthenticationPlugin>  
    <bean xmlns="http://www.springframework.org/schema/beans" 
          id="loggingPlugin" 
          class="org.apache.activemq.broker.util.LoggingBrokerPlugin"
    />
</plugins>  

範例

要了解如何擴展 ActiveMQ Classic,最簡單的方法可能是查看一些具體的功能範例,以及如何實作和設定這些功能。以下是一些範例

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 The Apache Software Foundation 的商標。版權所有 © 2024, The Apache Software Foundation。依據 Apache License 2.0 授權。