Initial project
This commit is contained in:
62
src/main/java/com/imyeyu/inject/InjectApp.java
Normal file
62
src/main/java/com/imyeyu/inject/InjectApp.java
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user