Bean的管理(获取,作用域,第三方Bean)

目录

Bean的获取:

根据name获取bean:Object getBean(String name)

根据类型获取bean: T getBean(Class requiredType)

根据name获取bean(带类型转换):

T aetBean(String name,Class requiredType)

Bean的作用域:

singleton容器内同 名称的 bean 只有一个实例 (单例) (默认)

prototype每次使用该 bean 时会创建新的实例 (非单例)

注意事项默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时)prototype的bean,每一次使用该bean的时候都会创建一个新的实例。实际开发当中,绝大部分的Bean是单例的,也就是说绝大部分Bean不需要配置scope属性。

@Bean


Bean的获取:

默认情况下,Sprin项目启动时,会把bean都创建好放在10C容器中,如果想要主动获取这些bean,可以通过如下方式:

根据name获取bean:
Object getBean(String name)

(bean的名字在默认情况下是类名是字母小写)

SomeBean someBean = (SomeBean) applicationContext.getBean("someBean");
 

这里需要强转是因为用get方法获取到的bean是object类型的。


根据类型获取bean:
<T> T getBean(Class<T> requiredType)

SomeBean someBean = applicationContext.getBean(SomeBean.class);
 


根据name获取bean(带类型转换):

<T> T aetBean(String name,Class<T> requiredType)

SomeBean someBean = applicationContext.getBean("someBean", SomeBean.class);
 

Bean的作用域:

singleton
容器内同 名称的 bean 只有一个实例 (单例) (默认)

prototype
每次使用该 bean 时会创建新的实例 (非单例)

request
每个请求范围内会创建新的实例 (web环境中,了解)

session
每个会话范围内会创建新的实例 (web环境中,了解)

application
每个应用范围内会创建新的实例 (web环境中,了解)

scope:用于设置Bean的作用域!!!

注意事项
默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时)
prototype的bean,每一次使用该bean的时候都会创建一个新的实例。
实际开发当中,绝大部分的Bean是单例的,也就是说绝大部分Bean不需要配置scope属性。

@Bean

可以将第三方引入类交给IOP容器管理

@Configuration
public class AppConfig {

    @Bean
    public SomeBean someBean() {
        return new SomeBean();
    }

    @Bean
    public AnotherBean anotherBean() {
        return new AnotherBean();
    }
}
 

相关推荐

  1. Bean管理获取作用Bean

    2023-12-20 12:46:02       42 阅读
  2. Bean作用

    2023-12-20 12:46:02       10 阅读
  3. spring bean作用

    2023-12-20 12:46:02       13 阅读
  4. spring-Bean作用

    2023-12-20 12:46:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-20 12:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-20 12:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-20 12:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-20 12:46:02       20 阅读

热门阅读

  1. 【贪心算法】之买柠檬水找零

    2023-12-20 12:46:02       48 阅读
  2. 复习linux——安全加密

    2023-12-20 12:46:02       41 阅读
  3. 史上最牛软件开发工位

    2023-12-20 12:46:02       53 阅读
  4. 【已解决】MFC打开目录并保存到编辑框里

    2023-12-20 12:46:02       83 阅读
  5. SpringCloudGateway 3.1.4版本 Netty内存泄漏问题解决

    2023-12-20 12:46:02       43 阅读
  6. DataX迁移MongoDB

    2023-12-20 12:46:02       50 阅读
  7. mongoDB

    mongoDB

    2023-12-20 12:46:02      50 阅读
  8. 如何用python开发打包APP

    2023-12-20 12:46:02       52 阅读