Solon2 常用注解之 @Component 与 @Bean 的区别

@Component 与 @Bean 设计的目的是一样的,都是注册 Bean 到容器里。

1、@Component 注解

  • 及它的子类型 @Configuration,@Controller,@Remoting,@ProxyComponent 都是注解在类上的
  • 告诉 Solon,我是一个 Bean
  • 可能申明自己是不是单例
  • 通过类路径扫描自动检测并注入到容器中
  • 可以 @Inject 东西
  • 可以自动装配自己

其中 @Controller,@Remoting 类的函数会重新包装成 MethodWarp,支持代理效果。

其中 @ProxyComponent 有 ASM 或 APT 为其生成代理类,支持代理效果。

2、@Bean 注解

  • 不能注释在类上;只能用于在 @Configuration 类的函数上,中显式声明单个 Bean。
  • 意思就是,我要获取这个Bean的时候,框架要按照这种方式去获取这个Bean
  • 只是单例
  • 不可以 @Inject 东西
  • 要手动装配

在应用开发的过程中,如果想要将“第三方库”中的组件装配到应用容器中,是没有办法在它的类上添加 @Component 、@Inject 注解的,因此就不能使用自动化装配的方案了。

如果“第三方库”中的组件有 @Component 注解,但没有扫描到。可以使用 @Import 注解进行导入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值