首页 > 其他分享 >4.Spring中IOC创建对象的两种方式和创建时机

4.Spring中IOC创建对象的两种方式和创建时机

时间:2023-04-26 13:44:30浏览次数:38  
标签:容器 lazy spring 创建对象 getBean init Spring IOC

https://blog.csdn.net/jike11231/article/details/116357864

 

创建时机
1:默认的在Spring容器启动的时候
2:在getBean的时候创建对象(就是拿到配置文件中的标识符的时候创建对象)

在Spring的配置文件bean中有一个属性lazy-init=“default/true/false”
(1)如果lazy-init为"default/false"在启动spring容器时创建对象
(2)如果lazy-init为"true",在context.getBean时才要创建对象

意义:
(1)在启动spring容器的时候,检查spring容器配置文件的正确性,如果spring容器不能正常启动,整个tomcat就不能正常启动。但是这样的缺点是把一些bean过早的放在了内存中,如果有数据,则对内存来是一个消耗,但是可以过早发现错误。
(2)getBean时创建对象可以减少内存的消耗,但是不容易发现错误。

注意:
如果一个bean的scope属性为scope="pototype"时,即使设置了lazy-init=“false”,容器启动时不实例化bean,而是调用getBean方法是实例化的。

 

标签:容器,lazy,spring,创建对象,getBean,init,Spring,IOC
From: https://www.cnblogs.com/healthinfo/p/17355651.html

相关文章

  • spring heapdump泄露 heapdump_tool.jar
    https://github.com/wyzxxz/heapdump_tool heapdump_tool声明:此工具仅用于企业安全人员自查验证自身企业资产的安全风险,或有合法授权的安全测试,请勿用于其他用途,如有,后果自负。下载地址:https://toolaffix.oss-cn-beijing.aliyuncs.com/wyzxxz/20230425/heapdump_tool.jar+20......
  • SpringSecurity从入门到精通:从数据库查询权限信息&自定义失败处理
    从数据库查询权限信息      记得打开redis      自定义失败处理我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。要实现这个功能我们需要知道SpringSecurity......
  • springcloud OpenFeign的使用
    在这里只记录OpenFeign关键的使用步骤,A、B两个项目是基于springboot、springcloud实现的,并且在nacos中有服务注册。第一步:导入依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</a......
  • SpringBoot2 hikari关于 Failed to validate connection com.mysql.cj.jdbc.Connectio
    项目启动不报错,如果静默15分钟没有数据库操作就报上述错误WARN不影响程序运行Failedtovalidateconnectioncom.mysql.cj.jdbc.ConnectionImpl@16244d67(Nooperationsallowedafterconnectionclosed.).PossiblyconsiderusingashortermaxLifetimevalue.发现Spri......
  • Spring
     第1步:启动一个新的Spring引导项目用start.spring.io以创建“网络”项目。在“依赖项”对话框中,搜索并添加“Web”依赖项,如屏幕截图所示。点击“生成”按钮,下载zip,然后将其解压缩到计算机上的文件夹中。  创建者start.spring.io包含弹簧启动,一个框架,使Spring准备好......
  • 自定义实现SpringBoot Starter
    在日常的开发中,会将开发的公共jar包发布的仓库,这样可以实现代码的复用。这里介绍的是自定义SpringBootStarter的方式,对于采用SpringBoot开发的项目来说,引入和使用非常的方便。1、SpringBootStarter介绍SpringBoot和Spring相比,在配置上简化了很多,核心就是因为Starter引入了一些......
  • 3.springbean的作用域
    https://baijiahao.baidu.com/s?id=1610298792072480906&wfr=spider&for=pc一共是5种作用域,低版本的是下面两种作用域的种类Spring容器在初始化一个Bean的实例时,同时会指定该实例的作用域。Spring3为Bean定义了五种作用域,具体如下。1)singleton单例模式,使用singleton定......
  • Spring注入接口,接口多个实现类调用哪个实现类的三种方案
    https://blog.csdn.net/JingXu1114/article/details/124747047代码所示:···@AutowiredUserServiceuserService···在这个接口有多个实现类的情况下三种方式定义调用实现类:方法1:···`@Autowired UserServiceuserServiceImpl_1`···在变量名中直接写成想要调用......
  • SpringBoot的自动装配原理
    前言因为最近在准备知识框架的学习,对springboot的自动装配原理学习了一番,也看了一些视频和一些博客,根据自己的理解在此记录一下,有什么理解得不对的,可以指出一起讨论。本文主要根据以下的几个点对自动装配原理进行介绍:什么是springboot的自动装配springboot的自......
  • Spring Boot 项目代码混淆,实战来了,再也不用担心代码泄露了!
    编译简单就是把代码跑一哈,然后我们的代码.java文件就被编译成了.class文件反编译就是针对编译生成的jar/war包里面的.class文件逆向还原回来,可以看到你的代码写的啥。比较常用的反编译工具JD-GUI,直接把编译好的jar丢进去,大部分都能反编译看到源码:那如果不想给......