@Bean

@Component (必须放在配置类上)

衍生出
@Service
@Repository
@Conconfiguration
….

@Bean :只会是实例一次

a.(放在方法上的)
b.通常configuration类里面
@Bean方法调用另外一个@Bean方法,会从spring容器中去获取
c.可以干预bean的实例化过程的,jar包中的类如果要配置bean就需要用@Bean
d.在方法中声明的参数spring会帮我们自动注入进来

@import

a。 @lmport须写在类上面
b。 标记的类必须是一个bean否则不会起作用
c。 普通类
i。直接@lmport(UserService。class)普通类,把普通类注入spring;
d。 ImportSelector :- 用于根据完整限定名字符串批量注入Bean
i。定义一个类实现ImportSelector
ii。批量注册bean(通过实现selectlmports,返回bean的完整类路径字符串数组)
ii。 @lmport(实现ImportSelector。class)

e。 ImportBean DefinitionRegistrar
i。定义一个类实现ImportBeanDefinitionRegistrar
ii。根据beanDefinition注册bean-
用于对底层做一些扩展

1.3.2. 实例化Bean

  • 默认使用无参构造器实例化

    • 有多个构造函数依然会调用无参构造函数
    • 如果只有一个有参构造函数spring会调用,并且把参数自动装配进来
    • 如果有参构造函数有个多个并且没有无参构造西数:会报错,需要一个无 参构造函数
  • 使用实例工厂方法实例化—@Bean

    • 可以自由的选择构造函数进行实例化
  • 使用工厂Bean。实例化—FactoryBean :
    FactoryBean是一个接口
    需要有一个Bean,—旦这个Bean实现FactoryBean就成为了特殊的Bean
    可以自由的选择构造函数进行实例化

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!