 @Component 和 @Bean 这两个注解，语义性不强。v3.5 后新增更具语义的 @Managed （容器托管的意思）。


### 1、注解在类上。相当于 `@Component`

注解在类上，表示此为“容器托管的类”。会自动构建实例并装配，然后注册到容器。

```java
@Managed
public class UserService { }
```


### 2、注解在方法上。相当于 `@Bean`

注解在方法上，表示此为“容器托管的方法”。会自动装配并运行方法，如果结果不为 null 则注册到容器。

```java
@Configuration
public class DemoConfig {
   @Managed(value = "db1", typed = true) // 或 @Managed （v3.5 后支持）
   public DataSource db1(@Inject("${demo.db1}") HikariDataSource ds){
       return ds;
   }
}
```