Spring容器的学习

今日问题:

1、接口和抽象类的区别

2、多态性是指

3、IOC控制反转,DI依赖注入

IOC控制反转:控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器(如Spring)负责创建和维护。在IOC容器中,所有的对象都称为Bean。

DI(Dependency Injection)依赖注入:IOC实现的一种方式,获得依赖对象的过程由自身管理改为IOC容器自动注入,在IOC容器运行期间,动态地将某种关系注入到对象中,创建对象并组装对象。使得应用程序只用负责对象的使用。

4、spring两种依赖注入的方式:

(1)、注解

(2)、xml配置

5、有 IOC之后: 不用再在程序里面新建对象new-->getBean(“接口ID”)

6、单元测试相关:

7、容器上下文的创建context:

通过配置文件,配置文件加载的方式:文件系统、classpath为相对路径、web中依赖listener和servlet的方式

8、容器的启动context.start()//读取配置文件配置、装载的信息,将上下文的信息配置、装载到Spring的上下文中。

9、Bean容器的初始化:

基础:

由org.springframework.beans中的BeanFactory提供平日只结构和基本功能;

由org.springframework.context中的ApplicationContext保存Bean对象并在Spring中被广泛运用。

10、Spring注入:在启动Spring容器加载bean配置的时候,完成对变量的赋值行为。常用的注入方式:

(1)、设值注入:假设A接口创建的时候会去调用B接口,并用B实例去做某些操作,即A接口依赖于B接口,可以通过:通过xml的<property name="使用B的实例名" ref="B接口对应的BeanID"/>,会去调用A接口中对应的setB的实例名方法,对A接口中要用到的B实例进行赋值,即A接口必须要有setB的实例名方法。

(2)、构造注入:<constructor-arg name="使用B的实例名" ref="B接口对应的BeanID"/>,A接口必须要有对应的构造方法,必须保证对应的变量名和name一致。

----------------------------------------------------Bean----------------------------------------------------

11、Bean的配置项中,只有class是必须配置的(要获取某个类 ,可以通过bean的类型来匹配)

12、Bean的作用域(默认为单例模式):

global session常用场景例子:如果是在一个单点登录的综合化的系统里面,比如常用的办公系统中包含了考勤、财务等系统链接,点击任意一个就跳到对应的系统中,已经是两个系统里,这个时候global session就起作用了。

验证:

可以用hasCode()来对实例做区分,两次输出一致。

13、Bean的生命周期

(1)、初始化:

(2)、销毁:

IOC容器关闭之后,bean对象destroy,之后IOC容器再destroy

(3)、全局默认初始化、销毁方法:

(4)、如果三种都配置了,会先执行实现factory接口的方法,再执行bean里面配置的init方法,不会执行default方法。如果三种都没有配置,会用默认的方法,所以即使default方法配置了,但是没有实际写明该方法也是不会报错的。注意的一点就是如果bean的scope被配置为prototype 时 destroy() 是不会被调用的。对于具有prototype作用域的Bean,有一点很重要,即Spring不能对该Bean的整个生命周期负责。具有prototype作用域的Bean创建后交由调用者负责销毁对象回收资源。

14、Spring中的通过×Aware接口进行资源获取、拓展

15、Java的什么对象都会有对于的hash值?

16、Bean的自动装配

17、Resources处理资源文件的接口,加载资源文件时,可以通过resources进行加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值