核心 API 参考
LCGYL Framework 核心模块的 API 参考文档。
IoC/DI 容器
@Component
标记一个类为组件,由容器管理。
java
@Component
public class UserService {
// ...
}参数:
value(String): 组件名称,默认为类名首字母小写scope(Scope): 作用域,默认为 SINGLETON
@Inject
标记需要注入的依赖。
java
@Component
public class UserService {
@Inject
private UserRepository userRepository;
// 或构造器注入(推荐)
@Inject
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}Container
IoC 容器,管理组件的生命周期。
java
// 获取容器实例
Container container = Container.getInstance();
// 注册组件
container.register(UserService.class);
// 获取组件
UserService userService = container.get(UserService.class);
// 获取所有组件
List<Object> components = container.getAll();方法:
register(Class<?>): 注册组件类register(String, Object): 注册组件实例get(Class<T>): 获取组件get(String): 根据名称获取组件getAll(): 获取所有组件contains(Class<?>): 检查是否包含组件
事件总线
Event
事件接口,所有事件都应实现此接口。
java
public record UserCreatedEvent(User user) implements Event {
}EventBus
事件总线,用于发布和订阅事件。
java
// 获取事件总线
EventBus eventBus = EventBus.getInstance();
// 发布事件
eventBus.publish(new UserCreatedEvent(user));
// 订阅事件
eventBus.subscribe(UserCreatedEvent.class, event -> {
System.out.println("用户已创建: " + event.user().getName());
});方法:
publish(Event): 发布事件publishAsync(Event): 异步发布事件subscribe(Class<E>, Consumer<E>): 订阅事件unsubscribe(Class<E>, Consumer<E>): 取消订阅
@EventListener
标记事件监听器方法。
java
@Component
public class UserEventListener {
@EventListener
public void onUserCreated(UserCreatedEvent event) {
System.out.println("用户已创建: " + event.user().getName());
}
}参数:
async(boolean): 是否异步处理,默认 falsepriority(int): 优先级,数字越小优先级越高
AOP
Interceptor
拦截器接口。
java
public interface Interceptor {
Object intercept(Invocation invocation) throws Throwable;
}Invocation
调用上下文。
java
public record Invocation(
Object target,
Method method,
Object[] args,
InterceptorChain chain
) {
public Object proceed() throws Throwable {
return chain.proceed(this);
}
}方法:
target(): 获取目标对象method(): 获取方法args(): 获取参数proceed(): 继续执行
ProxyFactory
代理工厂。
java
// 创建代理
UserService proxy = ProxyFactory.createProxy(
userService,
List.of(new LoggingInterceptor())
);方法:
createProxy(T, List<Interceptor>): 创建代理对象
配置管理
Configuration
配置接口。
java
Configuration config = ConfigurationManager.load("application.properties");
// 获取配置
String name = config.getString("app.name");
int port = config.getInt("server.port");
boolean debug = config.getBoolean("app.debug", false);方法:
getString(String): 获取字符串配置getInt(String): 获取整数配置getLong(String): 获取长整数配置getDouble(String): 获取浮点数配置getBoolean(String): 获取布尔配置get(String, Class<T>): 获取自定义类型配置contains(String): 检查是否包含配置
@ConfigurationProperties
配置属性绑定。
java
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
private String version;
// Getters and Setters
}参数:
prefix(String): 配置前缀
ConfigurationManager
配置管理器。
java
// 加载配置
Configuration config = ConfigurationManager.load("application.properties");
// 绑定配置
AppConfig appConfig = ConfigurationManager.bind(AppConfig.class, config);
// 设置激活环境
ConfigurationManager.setActiveProfile("prod");方法:
load(String): 加载配置文件bind(Class<T>, Configuration): 绑定配置到对象setActiveProfile(String): 设置激活环境
插件系统
Plugin
插件接口。
java
public interface Plugin {
void load();
void initialize();
void start();
void stop();
void destroy();
void unload();
}PluginManager
插件管理器。
java
PluginManager manager = new PluginManager();
// 加载插件
manager.loadPlugin("plugin.jar");
// 启动插件
manager.startPlugin("my-plugin");
// 停止插件
manager.stopPlugin("my-plugin");
// 卸载插件
manager.unloadPlugin("my-plugin");方法:
loadPlugin(String): 加载插件startPlugin(String): 启动插件stopPlugin(String): 停止插件unloadPlugin(String): 卸载插件getPlugin(String): 获取插件getAllPlugins(): 获取所有插件