Spring中的组件注册
2025-4-3
| 2025-4-4
Words 1213Read Time 4 min
type
status
date
slug
summary
tags
category
icon
password

1.ioc容器

spring管理所有组件,运行boot返回ioc容器;
1.1创建时机:容器启动过程中就会创建组件对象
1.2单实例特性:所有组件默认是单例的,每次获取直接从容器中拿,容器提前会创建组件
可以获取所有组件名称并打印

2.bean组件

按照名称来获取组件
按照类型来获取组件
按照名称+类型精确获取组件

一些注意点

  • 组件不存在,抛异常 NoSuchBeanDefinitionException
  • 组件不唯一,按照类型只要一个,抛异常 oUniqueBeanDefinitionException
  • 组件不唯一,按照类型返回多个,用Map集合
  • 组件名字全局唯一,组件名重复了,报错

3.Configuration配置类

@Configuration 标注配置类,可用于配置bean组件

4.SpringMVC分层注解

给人看的,实际都是Component

5.ComponentScan组件扫描

写在配置类上扫描当前包及其子包,注册了的组件

6.Import导入外部类

外部类无法标注解,只能导入

7.Scope作用域

8.Lazy懒加载

默认为饿汉式加载,修改为懒汉式加载,标注在@Bean的上方
懒汉加载是指在首次使用时才创建对象实例,而饿汉加载则是在类加载时就创建对象实例。

9.FactoryBean

应用场景:如果制造的组件比较复杂,利用工厂方法进行创建 FactoryBean在容器中的组件的类型,是接口中泛型指定的类型,组件的名字是工厂自己的名字

10.Conditional条件注册

标注在@bean的上方,需要添加一个条件类
此外还有多种特殊条件注解
  1. @Conditional:这是最基本的条件注解,它可以接受一个或多个Condition接口的实现类作为参数。只有当所有条件都满足时,才会创建或注册Bean。
  1. @ConditionalOnBean:这个注解用于检查指定的Bean是否存在于Spring容器中。如果存在,则创建或注册当前Bean。
  1. @ConditionalOnMissingBean:与@ConditionalOnBean相反,这个注解用于检查指定的Bean是否不存在于Spring容器中。如果不存在,则创建或注册当前Bean。
  1. @ConditionalOnClass:这个注解用于检查指定的类是否存在于类路径中。如果存在,则创建或注册当前Bean。
  1. @ConditionalOnMissingClass:与@ConditionalOnClass相反,这个注解用于检查指定的类是否不存在于类路径中。如果不存在,则创建或注册当前Bean。
  1. @ConditionalOnProperty:这个注解用于检查指定的属性是否存在于配置文件中,并且其值是否满足指定的条件。如果满足条件,则创建或注册当前Bean。
  1. @ConditionalOnResource:这个注解用于检查指定的资源是否存在于类路径中。如果存在,则创建或注册当前Bean。
  1. @ConditionalOnWebApplication:这个注解用于检查当前应用是否是一个Web应用。如果是,则创建或注册当前Bean。
  1. @ConditionalOnNotWebApplication:与@ConditionalOnWebApplication相反,这个注解用于检查当前应用是否不是一个Web应用。如果不是,则创建或注册当前Bean。
 
  • 开发
  • 今天成功部署NotionNext个人博客Linux中的网络连接模式
    Loading...