一、获取bean
1.默认情况下,Spring项目启动时,会把bean都创建好放在IOC容器中,如果想要主动获取这些bean,可以通过以下方式:
(1)根据name获取bean:Object getBean(String name);
(2)根据类型获取bean:<T> T getBean(Class<T> requiredType);
(3)根据name获取bean(带类型转换):<T> T getBean(String name,Class<T> requiredType);
2.注意事项:上述所说的【Spring项目启动时,会把其中的bean都创建好】还会受到作用域及延迟初始化影响,这里主要针对于默认的单例非延迟加载的bean而言。
二.bean作用域
1.spring支持五种作用域,后三种在web环境才生效:
2.可以通过@Scope注解来进行配置作用域:@Scope("pretotype")
3.注意事项:
(1)默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时)。
(2)prototype的bean,每一次使用该bean的时候都会创建一个新的实例。
(3)实际开发当中,绝大部分的Bean是单例的,也就是说大部分Bean不需要配置scope属性。
三、第三方bean
1.@Bean:如果要管理的bean对象来自第三方(不是自定义的),是无法使用@Component及衍生注解声明bean的,就需要使用@Bean注解。
2.若要管理的第三方bean对象,建议对这些bean进行集中分类放置,可以通过@Configuration注解声明一个配置类。
3.注意事项:
(1)通过@Bean注解的name或value属性可以声明bean的名称,如果不指定,默认bean的名称就是方法名。
(2)如果第三方bean需要依赖其他bean对象,直接在bean定义方法中设置形参即可,容器会根据类型自动装配。
标签:name,管理,作用域,Bean,getBean,bean,注解 From: https://www.cnblogs.com/yang-jc/p/17587752.html