Welcome everyone

Spring必知必会 IOC理论

java 汪明鑫 734浏览 0评论

什么是IOC

IOC  Inversion of Control   控制反转

DI Dependency Injection  依赖注入

DI是IOC的实现

 

控制反转的意思是我们不再显示的创建对象,而是通过spring来创建对象

让Spring来控制对象的创建,让别人帮你干,自己懒得干

消除new对象,解耦合,解决硬编码问题,从此走上不归路。。。

 

 

IOC容器

摘自Spring官网

The org.springframework.beans and org.springframework.context packages are the basis for Spring Framework’s IoC container. The BeanFactory interface provides an advanced configuration mechanism capable of managing any type of object. ApplicationContext is a sub-interface of BeanFactory.

 

Spring中提供了两种IOC容器:

  • BeanFactory  (spring-beans )
  • ApplicationContext (spring-context

 

ApplicationContext在BeanFactory的基础上构建,是相对比较高级的容器实现,功能更强大

 

简述 IOC启动过程

加载xml配置文件或扫描JavaConfig,把bean以BeanDefinition的形式统一放在一个map里缓存起来

需要使用该bean,向map取来Class实例化并注入

 

依赖注入方式

简单来说:

  • 接口注入
  • 构造函数注入
  • setter 注入

 

从另一个角度:

  • javaEE

JNDI(Java Naming And Directory Interface)

              EJB
  • 依赖注入(Dependency Injection)
               组件依赖dependency 、注入injection
  • 依赖查找(Dependency lookup)
               ID、别名、名称查找、类型查找、注解查找
具体使用:
  • 在Spring中  @Autowired
  • 在java中 @Resource
  • 在java EE中 @Inject

 

有点乱,嘿嘿,记住@Autowired就行,最常用的,他就是依赖注入的具体使用

比如在controller @Autowired service,service @Autowired dao

 

Spring Bean

Bean由Spring IOC容器实例化

 

配置方式:

  • xml

<bean></bean>

  • 注解配置

(1)Spring:  xml需配置

<beans>
<context:annotation-config/>
</beans>

(2)Spring Boot :  JavaConfig 主流

@Bean + @Configuration

 

那么xml的配置我们需要学习嘛,我觉得还是需要的

 

 

Bean Scop

  • Singleton – 每个 Spring IoC 容器仅有一个单 Bean 实例  (默认)
  • Prototype – 每次请求都会产生一个新的实例。
  • Request – 每一次 HTTP 请求都会产生一个新的 Bean 实例,并且该 Bean 仅在当前 HTTP 请求内有效。
  • Session – 每一个的 Session 都会产生一个新的 Bean 实例,同时该 Bean 仅在当前 HTTP Session 内有效。
  • Application – 每一个 Web Application 都会产生一个新的 Bean ,同时该 Bean 仅在当前 Web Application 内有效。

 

大多都是默认配置即可,就算真用的也只有Prototype

其他三个了解即可

转载请注明:汪明鑫的个人博客 » Spring必知必会 IOC理论

喜欢 (0)

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz