内核支持的几种特殊 Bean
这些特殊 Bean 尽是用 "@Component" 注解:
| 接口 | 说明 |
|---|---|
org.noear.solon.core.bean.LifecycleBean | 带有生命周期接口的 Bean |
org.noear.solon.core.event.EventListener | 本地事件监听,会自动注册 EventBus |
org.noear.solon.core.LoadBalance.Factory | 负载平衡工厂 |
org.noear.solon.core.convert.Converter | 转换器。 //用于简单的配置或Mvc参数转实体字段用 |
org.noear.solon.core.convert.ConverterFactory | 转换器工厂。 //用于简单的配置或Mvc参数转实体字段用 |
org.noear.solon.core.handle.Filter | 过滤器 |
org.noear.solon.core.route.RouterInterceptor | 路由拦截器 |
org.noear.solon.core.handle.EntityConverter | 请求实体转换器。//用于执行Mvc参数整体转换 |
org.noear.solon.core.handle.MethodArgumentResolver | 方法参数分析器。//用于执行Mvc单个参数分析 |
org.noear.solon.core.handle.ReturnValueHandler | 返回值处理器。//用于特定Mvc返回类型处理 |
org.noear.solon.core.handle.Render | 渲染器。//用于响应数据渲染输出 |
示例1:
- InitializingBean
import org.noear.solon.annotation.Component;
import org.noear.solon.core.bean.LifecycleBean;
//可以,通过组件顺序位控制 start 执行的优先级(一般,自动更好!)
@Component
public class DemoCom implements LifecycleBean{
@Override
public void start() throws Throwable{
//开始。在容器扫描完成后执行。如果依赖了别的 LifecycleBean,会自动排序
}
@Override
public void preStop() throws Throwable{
//预停止。在容器预停止时执行
}
@Override
public void stop() throws Throwable{
//停止。在容器停止时执行
}
}
- EventListener
import org.noear.solon.annotation.Component;
import org.noear.solon.core.event.EventListener;
//监听本地事件 //可以,通过组件顺序位控制优先级
@Component(index = 0)
public class DemoEventListener implements EventListener<DemoEvent>{
@Override
public void onEvent(DemoEvent event) throws Throwable{
}
}
//发布本地事件
EventBus.publish(new DemoEvent());
示例2:for web
具体参考:《Solon Web 开发定制参考》