Spring:IoC容器

IOC容器

依赖注入和控制反转的区别?

  • “依赖注入”和“控制反转”其实就是一个事物的两种不同说法而已,本质上是一回事。
  • 基本思想:把类的依赖从类内部转到外部以减少依赖。
  • 利用“控制反转”,对象在被创建时,会由一个调控系统统一进行对象实例的管理,将该对象所依赖对象的引用通过调控系统传递给它。也可以说,依赖被注入到对象中。
  • “控制反转”是关于一个对象如何获取它所依赖对象的引用的过程,而反转体现在“谁来传递依赖的引用”这个职责的反转。
  • 控制反转一般分为:依赖注入(DI)和依赖查找(DL)。spring采用依赖注入来实现控制反转。
  • 个人理解:依赖注入是你需要我就给你注入,依赖查找是你需要就自己来找。

IoC应用的设计模式:

  • 反射:在运行状态中,根据提供的类的路径或类名,通过反射来动态地获取该类的所有属性和方法。
  • 工厂模式:把IOC容器当作一个工厂,在配置文件或注解中给出定义,然后利用反射技术,根据给出的类名生成相应的对象。

org.springframework.beans和org.springframework.context是SpringIoC容器的基础。

配置元数据:

  1. 基于XML文件格式记录配置元数据:在<beans/>中的<bean/>元素来配置bean。(SSH)
  2. 基于注解的配置
  3. 基于Java的配置:在@Configuration注解的类中使用@Bean注解。(SSM、springboot)

自动配置:

  • springboot通常使用基于Java的配置,通常,定义main方法的类作为主要的@Configuration类。
  • springboot应用了很多Spring框架中的自动配置功能。
  • 要启动自动配置功能,需要将@EnableAutoConfiguration或@SpringBootApplication注解添加到一个@Configuration类中。
  1. 自动配置:在Spring应用,通常使用@ComponentScan找到bean,结合@Autowired构造函数将bean进行自动装配注入。这些bean涵盖所有应用程序组件,如@Component、@Service、@Repository和@Controller等。
  2. 使用@SpringBootApplication注解:@SpringBootApplication注解相当于使用@Configuration、@EnableAutoConfiguration和@ComponentScan及其默认属性。

如果单例bean和非单例bean联合使用,可能出现问题,此时需要使用lookup-method注入replaced-method注入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值