Initial project

This commit is contained in:
Timi
2025-07-14 11:57:11 +08:00
parent 48273bd9f0
commit 0970569738
29 changed files with 1541 additions and 94 deletions

View File

@ -0,0 +1,62 @@
package com.imyeyu.inject;
import com.imyeyu.java.bean.CallbackArg;
import java.util.ArrayList;
import java.util.List;
/**
* @author 夜雨
* @since 2024-10-10 15:20
*/
public final class InjectApp {
Object obj;
Class<?> clazz;
boolean enableBanner = true;
/** 全局注入后监听,包括静态注入 */
final List<CallbackArg<TimiInject>> afterInjectCallbackList = new ArrayList<>();
public InjectApp(Object obj) {
this.obj = obj;
this.clazz = obj.getClass();
}
public InjectApp(Class<?> clazz) {
this.clazz = clazz;
}
public InjectApp disableBanner() {
enableBanner = false;
return this;
}
/**
* 添加全局注入后监听
*
* @param listener 监听器
*/
public synchronized void addAfterInjectListener(CallbackArg<TimiInject> listener) {
afterInjectCallbackList.add(listener);
}
/**
* 移除全局注入后监听
*
* @param listener 监听器
*/
public synchronized void removeAfterInjectListener(CallbackArg<TimiInject> listener) {
afterInjectCallbackList.remove(listener);
}
public boolean isEnableBanner() {
return enableBanner;
}
public void setEnableBanner(boolean enableBanner) {
this.enableBanner = enableBanner;
}
}