Bean是啥
可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean。
那为啥要交给Spring去管理?
-
方便代码写作
我理解,主要是可通过注释@Autowired等注释,方便对象的日常性调用,减少代码。
如类中,对某对象的方法引用,只要定义处加个@Autowired注释即可,就不需要各方法是导出new了。 -
注解第三方包
能够管理第三方jar包内的类到容器中。 我们引入一个第三方的jar包,这其中的某个类,如StringUtil需要注入到我们的IndexService类中,因为我们没有源码,不能在StringUtil中增加@Component或者@Service注解。这时候我们可以通过使用@Bean的方式,把这个类交到Spring容器进行管理,最终就能够被注入到IndexService实例中。 -
定制化第三方工具类
可以对第三方的某些托管给Spring容器的工具类进行定制化。在传统配置文件方式的时候,我们需要定制某个bean的属性,我们会使用
这些bean,既可以是我们的实体类,也可以是某些工具类的配置文件对应的类。比如说RestTemplate.在我们获取RestTemplate对应的实例的时候,初始化这个实例的时候,会在容器中寻找配置文件对应的类,如果有的话则注入到这个类中。那么RestTemplate实例对应的各种参数,比如说timeout时间长度等,就全部定制好了。使用@Bean注解,同样也是达到这种目的。不过这个是在扫描的时候把bean放入到容器中,而不是读取配置文件。前提是RestTemplate内部定义了这种兼容性的设计,即内部有地方接收这些注入的参数,并且把这些参数合理转化到相应的属性中。
————————————————
版权声明:本文为优快云博主「孙大诚_SunRobin」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/sundacheng1989/article/details/92783515
注解Bean
- 使用Bean
即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
2、 注册Bean,
@Component , @Repository , @ Controller , @Service , @Configration,@Bean这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。