这些特殊 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

```java
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

```java
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 开发定制参考》](/article/1110)


