Spring IoC中的基础知识

Serepta ·
更新时间:2024-09-20
· 785 次阅读

1.IoC的定义

IoC称为控制反转又叫DI(依赖注入)。

2.Spring

Spring的定义:是一个IoC容器
  分为:

  spring core     spring beans:     组件工厂BeanFactory     spring context:    环境,装配     spring expression

3.Spring 组件的作用域

单例(默认):全局唯一 原型:每次获得一个全新的实例 请求作用域:web程序 会话作用域:web程序

ApplicationContext 与BeanFactory 之间的关系。后面会以代码格式详细说明

4.AOP

spring aop

5.IoC/DI(依赖注入模式)

分为:

接口注入(EJB) 构造器注入 setter注入

 依赖:组件(对象)A,B,如果A中方法的执行需要调用B的方法,则说A依赖B。

//A依赖于B class A{ //方案一;A内部创建一个B的实例 //对象A销毁了,B也会销毁 B b=new B(); void work(){ b.run(); } } A a1=new A();//a1.b A a2=new A();//a2.b //a1.b!=a2.b;

这种模式的特点:
B 是为 A 而存在, 对象 A 销毁时, B 也被迫销毁了。B 会被陪葬!

这种人就是我们常说的舔狗。

class Person{ //爱人 person lover; //方案二 //构造器注入,一个对象构造器只能执行一次 //只能出生一次 public Person(Person lover){ this.lover=lover; } //方案三 //可以多次调用 void setLover(Person lover){ this.lover=lover; } void marry(){ //结婚 lover.marry(); } } Person rose; Person jack; Person king;

娃娃亲,这种模式出自于古代,现代早已所剩寥寥无几。古时候东西坏了,人们只想着怎么把它修好,爱情也是一样,所以才会有那么多的爱情故事。。。 

//方案二 //king,rose 的爱人是什么时候获得的? //出生时就有 king =new Person(rose); rose=new Person(king);

这种模式 于现代产生,不喜欢就换一个对象,东西坏了直接丢掉,喜欢全凭感觉,感觉不对,立马下一个,也就是大家所说的渣男渣女。在这种模式的基础上,涌现出大量新的东西,只有一个参数是舔狗,有多个参数,就化身为海王。

//方案三:setter注入 king =new Person(); rose=new Person(); jack=new Person(); rose.setLover(king); rose.setLover(jack); rose.marry(); jack.setLover(king); jack.marry();

6.如何获得依赖资源

  不要内部创建(高耦合度),由外部注入(传递进入),降低耦合。
    尽量依赖于抽象(interface),避免依赖具体实现(class)

class Person implements Marryable{ //lover是具体 Marryable lover; void setLover(Marryable lover){ this.lover=lover; } void marry(){ lover.Kiss(); } void Kiss(){ } } //爱人 interface Marryable{ void Kiss(); } class Robot implements Marryable{} class Dog implements Marryable{} Person jack=new Person(); Person rose=new Person(); jack.setLover(rose); jack.setLover(new Robot()); jack.setLover(new Dog()); jack.marry();

关于 Spring IoC(依赖注入)就到这里,想要更加仔细了解的小伙伴可以看下一篇博客,当然有问题的,欢迎留言!!!


作者:爷 叼烟闯天下



spring ioc

需要 登录 后方可回复, 如果你还没有账号请 注册新账号