天天看点

关于Spring容器的理解

最近在公司实习,做爬虫工作。看了一下这个框架的架构,是利用Spring容器,管理对象的实例化。持久层直接使用jdbc对数据进行入库封装。

所以今天就写一下我对Spring做容器的理解。

我们平时写代码时,一般创建对象的时候会直接new一个出来,Spring容器中,我们需要在配置文件中添加bean实例,如

<bean id="demo" class="com.demo"/>
      

之后,demo对象的实例化就交给了Spring容器,我们只要用代码告诉Spring我们什么时候要用到这个就行了。 

那么这样做有什么好处呢?

首先,这个方法叫做控制倒转。对象实例的控制权由代码编写者转到容器。

之后,我们需要通过依赖注入,告诉容器都有哪些对象可以实例化。

具体的注入方法有构造器,setter属性等。

由容器决定对象的实例,回收等,对编码者来说减少了很多工作量,从效率来看,也更高效。

类似的原理还有线程池的概念,由线程池实现对各个线程的调度工作。

需要注意的一点是,当一个对象需要用到另一个对象时,一定在配置文件中写上,如下

<bean id="demo" class="com.demo">
   <property name="geoCityService" ref="geoCityService"/>
   <property name="cityInfoService" ref="cityInfoService"/>
   <property name="provinceInfoService" ref="provinceInfoService"/>
</bean>