创建对象--》依赖注入--》bean
Spring创建bean的几种方式
- 使用构造方法创建Bean:使用构造方法创建Bean是最基本的方式,Bean的属性可以通过构造方法的参数进行初始化。在Spring容器创建Bean对象时,通过调用Bean类的构造方法来实例化Bean对象。
- 使用静态工厂方法创建Bean:使用静态工厂方法创建Bean是通过调用一个静态工厂方法创建Bean对象。在这种方式下,使用工厂方法对Bean对象进行实例化,可以对Bean的实例化过程进行更多的控制。
- 使用实例工厂方法创建Bean:使用实例工厂方法创建Bean是通过调用实例工厂方法创建Bean对象。这种方式与静态工厂方法的不同之处是,在实例工厂方法中,需要先创建一个工厂对象,再通过工厂对象调用实例方法,创建Bean对象。
- 使用@Bean注解创建Bean:@Bean注解是一种常见的创建Bean的方式,通过在类上添加@Bean注解,可以将一个方法标记为工厂方法,用来创建并返回一个Bean对象。
- 使用@Component注解或其衍生注解创建Bean:在Spring中,可以使用@Component注解或其衍生注解用来标记一个类为Bean,然后由Spring容器自动管理这些Bean对象的生命周期。
Spring把bean注入到ioc容器
好的,把 Bean 注入到 IOC 容器里面的方式有 7 种方式
使用 xml 的方式来声明 Bean 的定义,Spring 容器在启动的时候会加载并解析这 个 xml,把 bean 装载到 IOC 容器中。
使用@CompontScan 注解来扫描声明了@Controller、@Service、@Repository、 @Component 注解的类。
使用@Configuration 注解声明配置类,并使用@Bean 注解实现 Bean 的定义, 这种方式其实是 xml 配置方式的一种演变,是 Spring 迈入到无配置化时代的里 程碑。
使用@Import 注解,导入配置类或者普通的 Bean
使 用 FactoryBean 工 厂 bean , 动 态 构 建 一 个 Bean 实 例 , Spring Cloud OpenFeign 里面的动态代理实例就是使用 FactoryBean 来实现的。
实现 ImportBeanDefinitionRegistrar 接口,可以动态注入 Bean 实例。这个在 Spring Boot 里面的启动注解有用到。
实现 ImportSelector 接口,动态批量注入配置类或者 Bean 对象,这个在 Spring Boot 里面的自动装配机制里面有用到。
bean的初始化方式
- 通过构造方法进行初始化:Java Bean对象可以通过构造方法进行初始化,这个过程是在创建对象时完成的。使用构造方法初始化的好处是可以将所需的属性值作为参数传入,从而确保对象被正确地初始化。
- 通过属性赋值进行初始化:Java Bean对象可以使用set方法对属性进行赋值初始化。这个过程分为两步,首先创建一个Java Bean对象,然后逐个调用 set 方法对对象的属性进行赋值操作。这种方式适用于需要修改对象属性值的场景。
- 通过注解进行初始化:Java Bean还可以使用注解方式进行初始化,这个过程是通过在Java Bean类中使用注解进行赋值完成的。使用注解方式初始化的好处是可以将对象的属性值从配置文件或者其他地方导入,使得代码更加灵活。