-
1. 实例化bean 构造方法 实例方法 静态方法 2. 实例化带有属性的bean查看全部
-
执行bean初始化和销毁的逻辑处理
1、在xml文件中对bean添加属性 init-method="onInit"(初始化)和destroy-method="onDestroy"。(销毁)
当然destroy并不会直接进行调用。
若想使用destroy进行bean销毁,需要使用AbstractApplicationContext来创建context并调用 context.close(); 方法.
2、如果想对所有引入上下文的bean进行统一表示,可以在beans中添加属性 default-init-method="onInit" 和default-destroy-method="onDestroy" (当然也需要调用context.close();方法)
3、最后还有让bean继承接口InitializingBean和DisposableBean来处理bean初始化和销毁的逻辑处理
查看全部 -
什么是spring的懒加载?
在Singleton(单例模式中),交由spring上下文管理的bean对象,会在aplication创建context时(之后?)创建Bean对象,而不是在context调用getBean方法时创建bean,而开启懒加载后,会context会在调用getBean方法时去创建Bean对象。
懒加载的适用场景是什么?
如果某个Bean在程序整个运行周期都可能不会被使用,那么可以考虑设定该Bean为懒加载。
懒加载的优缺点是什么?
优点:
尽可能的节省了资源。
缺点:
可能会导致某个操作响应时间的增加。
懒加载的使用方式,见下图:
查看全部 -
spring内置的SimpleThreadScope,每个线程都会创建一个单独的实例,它和 java.lang.ThreadLocal 所实现的功能很像,但是也有细微的区别
查看全部 -
创建和使用自定义的作用域:
查看全部 -
自定义作用域:实现org.springframework.beans.factory.config.Scope
查看全部 -
java bean的作用域:标识可以为 request,session,application,websocket,其中,request和websocket基本上一样
查看全部 -
scope属性为request,同一个浏览器每次刷新,得到的实例的值都不一样
scope属性为session,同一个浏览器每次刷新,得到的值都一样,但是不同浏览器得到的实例的值不一样
scope属性为application,同一个浏览器,不同浏览器,每次刷新,得到的实例的值都一样
查看全部 -
继续上一个问题,修改步骤2如截图:
查看全部 -
bean1依赖bean2,bean1的scope是singleton,bean2的scope是prototype,那么bean1和bean2都只会被创建一次。那么如果我们想bean1是一次,bean2是多次呢,就需要用多次注入。
注入方法如截图:步骤1:
查看全部 -
bean中,如果没有添加scope,则默认是singleton单例模式
bean1和bean2,bean1依赖bean2,则不同的scope结果如截图
查看全部 -
prototype:多例模式
每次向spring上下文请求实例的时候,我得到的都是一个全新的实例
查看全部 -
运行单例模式,但是是不同的spring上下文,则失效了,结果如截图所示
查看全部 -
单例模式:每次向spring上下文请求这个实例的时候,spring都会返回同一个实例。或者说,在spring的声明周期中,该实例只存在一个。
只保证在一个spring的上下文环境中是单例模式,如果是多个spring的上下文环境,那么这个单例属性就失效了
查看全部 -
bean的作用域,singleton单例模式,prototype多例模式
查看全部
举报