本系列提供Solon 注解方面的知识。且对关键注解会有详细说明。

* <mark>方法（或函数）的注解，约定方法须为 public</mark>

### 目前常用注解有：

|  注解 |  说明 |
| -------- | -------- |
| `@Inject *`     | 注入托管对象（by type）    |
| `@Inject("name")`     |  注入托管对象（by name）    |
| `@Inject("${name}")`     |  注入应用属性（可由基础类型或结构体接收）    |
| | |
| `@BindProps(prefix="name")`     |   绑定应用属性（绑定配置类或方法结果）    |
| | |
| `@Singleton`     |  单例声明（Solon 默认是单例）     |
| `@Singleton(false)`     |  非单例     |
| | | 
| `@Import`     |   导入组件或属性源（作用在启动主类上或 @Configuration 类上，才有效）     |
| | | 
| `@Configuration` |   托管配置组件类（与 @Inject, @Bean 共同完成初始化配置、构建托管对象等） |
| `@Bean`     |  配置托管对象（作用在 @Configuration 类的函数上，才有效）     |
| `@Condition`     | 配置条件（v2.1.0 支持）     |
| | |
| `@Component`     |  托管组件（支持自动代理，v2.5.2 开始支持自动代理）     |
| | |
| `@SolonMain` | Solon 主类标识（即 main 函数所在类） |
| | |
| `@SolonTest` | Solon 测试标识（一般在测试时使用） |
| `@Rollback` | 执行回滚（一般在测试时使用） |



### MVC / RPC 常用注解：

|  注解 |  说明 |
| -------- | -------- |
| @Controller |  控制器组件类（支持函数拦截） |
| @Remoting | 远程控制器类（有类代理；即RPC服务端） |
| | |
| @Mapping...  |  映射（可附加 @Get、@Post、@Socket、@Produces、@Consumes 等限定注解） |
| | |
| @Param |   请求参数（一般没什么用处，需要默认值或名字不同时用） |
| @Header | 请求Header |
| @Cookie | 请求Cookie |
| @Path | 请求 path 变量（因为框架会自动处理，所以这个只是标识下方便文档生成用） |
| @Body |   请求体（一般会自动处理。仅在主体的 String, InputSteam, Map 时才需要） |

### WebSocket / SocketD 常用注解：

|  注解 |  说明 |
| -------- | -------- |
| @ServerEndpoint | WebSocket 与 Socket 的服务端注解（作用在 Listener 接口实现类上有效） |
| @ClientEndpoint | WebSocket 与 Socket 的客户端端注解（作用在 Listener 接口实现类上有效） |



