Solon 開發高階,一 外掛程式擴充套件機制

2022-09-18 07:33:25 字數 1387 閱讀 8340

像 @tran、@cache 之類的註解開發成果,都會希望能在所有專案中復用。solon plugin 是一種解耦的外掛程式擴充套件機制,簡單、彈性、自由。類似 spring factories、j**a spi。

solon plugin 機制的核心作用是:獲得了應用啟動入口,從而可以做一些事情。

//x開頭可以讓檔案排序在未位,方便找到

public class xpluginimpl implements plugin

}

約定外掛程式配置檔案:

#建議使用包做為檔名,便於識別,且可避免衝突

meta-inf/solon/.properties

約定外掛程式配置內容:

#外掛程式實現類配置

solon.plugin=

#外掛程式優化級配置。越大越優先,預設為0

solon.plugin.priority=9

程式啟動時,掃瞄meta-inf/solon/目錄下所有的.properties檔案,找到所有的外掛程式並排序。

這個外掛程式提供了@dao@service擴充套件註解,進而實現class的動態**能力。

package org.noear.solon.extend.aspect;

import org.noear.solon.core.aop;

import org.noear.solon.core.plugin;

import org.noear.solon.extend.aspect.annotation.dao;

import org.noear.solon.extend.aspect.annotation.service;

public class xpluginimp implements plugin );

aop.context().beanbuilderadd(service.class, (clz, bw, anno) -> );

}}

solon.plugin=org.noear.solon.extend.aspect.xpluginimp
//

// 引入 org.noear:solon.extend.aspect 外掛程式之後

//@service

@inject

//// @service 註解,可為 bean 新增 class 動態**;進而支援事務註解:@tran

//@tran

}}

Solon 開發高階,五 全域性異常訂閱

所謂 全域性異常 是指通過事件匯流排發布的異常。目前框架會把未吃掉的異常發布到事件匯流排。比如 啟動時產生的異常,或者計畫任務未處理的異常,或請求中未處理的異常。事件匯流排缺省會用 err.printstacktrace 自動列印。如果希望禁掉自動列印 或者對異常進行訂閱,訂閱後也會禁掉自動列印。獲...

Solon 開發高階,四 啟動引數說明

啟動引數,在應用啟動後會被靜態化 為了內部更高效的利用 比如,想通過體外擴充套件載入配置,是不能改掉它們的。啟動引數 對應的應用配置 描述 env solon.env 環境 debug solon.debug 除錯模式 setup solon.setup 安裝模式 white solon.white...

jquery 高階高階1 外掛程式開發

外掛程式開發兩種方式 1 類級外掛程式開發 jquery 類級外掛程式開發 1 直接給jquery新增全域性函式 2 用extend 方法 3 使用命名空間 直接給jquery新增全域性函式 jquery.myalert function objtext 引用 myalert 直接給jquery新增...