首页 > 其他分享 >Spring生命周期

Spring生命周期

时间:2023-06-26 16:25:51浏览次数:47  
标签:初始化 生命周期 Spring Bean 销毁 方法

Spring Bean的生命周期

Spring框架中的组件被称为Bean,每个Bean都有其特定的生命周期。下面是Spring Bean的生命周期的主要阶段:

  1. 实例化:在这个阶段,Spring容器根据Bean定义创建Bean的实例。这可以通过构造函数或工厂方法来实现。

  2. 属性注入:在实例化完成后,Spring容器将会为Bean的属性注入对应的值。这可以通过使用XML配置、注解或Java配置来完成。

  3. 初始化:一旦属性注入完成,Spring容器将调用Bean的初始化方法(如果有)。开发者可以通过实现InitializingBean接口或在配置文件中指定初始化方法来定义初始化逻辑。

  4. 使用:在初始化完成后,Bean可以被应用程序使用。这是Bean发挥作用的阶段,可以执行各种业务逻辑。

  5. 销毁:当应用程序关闭或需要销毁Bean时,Spring容器会调用Bean的销毁方法(如果有)。开发者可以通过实现DisposableBean接口或在配置文件中指定销毁方法来定义销毁逻辑。

Spring生命周期回调接口

Spring框架提供了一些回调接口,用于在Bean的生命周期的不同阶段执行特定任务。以下是一些常用的生命周期回调接口:

  1. InitializingBean:实现该接口的Bean在初始化阶段会调用afterPropertiesSet()方法,开发者可以在该方法中编写初始化逻辑。

  2. DisposableBean:实现该接口的Bean在销毁阶段会调用destroy()方法,开发者可以在该方法中编写销毁逻辑。

  3. @PostConstruct:使用该注解标记的方法会在依赖注入完成后执行,相当于初始化方法。

  4. @PreDestroy:使用该注解标记的方法会在Bean销毁前执行,相当于销毁方法。

自定义初始化和销毁方法

除了实现回调接口外,开发者还可以通过配置文件或注解来自定义Bean的初始化和销毁方法。例如,在XML配置文件中可以使用init-methoddestroy-method属性指定初始化和销毁方法的名称,或者使用@Bean(initMethod = "init", destroyMethod = "destroy")注解来定义初始化和销毁方法。

标签:初始化,生命周期,Spring,Bean,销毁,方法
From: https://www.cnblogs.com/DTCLOUD/p/17505991.html

相关文章

  • Spring IoC有什么好处呢?
      来源   https://www.zhihu.com/question/23277575?utm_id=0   SpringIoC有什么好处呢? 作者:Mingqi链接:https://www.zhihu.com/question/23277575/answer/169698662来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。要了解控......
  • SpringCloud http大文件断点续传上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{    InputStreamstream=file.getInputStream();// 把文件读入    StringfilePath=request.......
  • spring系列框架有哪些
    springboot包含了springMVC,但后者需要手动配置很多东西才能跑起来,包括繁琐的xml配置,而springboot会自动配置,比如用注解简化了配置(不用配xml),没有手动也会有默认值 SpringBoot就是一个工具,他集成了SpringMVC。Web开发用的实际还是SpringMVC那一套SpringS......
  • SpringMVC http大文件断点续传上传
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭......
  • 肝了一周总结的SpringBoot常用注解大全,看完就炉火纯青了!
      来源于 https://www.macrozheng.com/mall/reference/springboot_annotation.html  肝了一周总结的SpringBoot常用注解大全,看完就炉火纯青了!   平时使用SpringBoot开发项目,少不了要使用到它的注解。这些注解让我们摆脱了繁琐的传统SpringXML配置,让我们开发项目......
  • Spring Boot - 异步任务
    SpringBoot-异步任务前言有时候,前端可能提交了一个耗时任务,如果后端接收到请求后,直接执行该耗时任务,那么前端需要等待很久一段时间才能接受到响应。如果该耗时任务是通过浏览器直接进行请求,那么浏览器页面会一直处于转圈等待状态。一个简单的例子如下所示:@RestController@R......
  • spring boot 编译打包时将自定义引入的.jar包依赖,全部打包进去
    发现自己引入的.jar包,在打包时,.jar包并不会打进去,导致报错。打包时打入自定义.jar包方法:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</a......
  • 通过网关添加过滤器【SpringCloud】
    spring:application:name:gateway#服务名称cloud:nacos:server-addr:localhost:8848#nacos地址gateway:routes:#网关路由配置-id:itemservice#路由id,自定义,只要唯一即可#uri:http://127.0.0.1:8081#路由......
  • Springboot graceful shutdown
    很多情况下,在应用程序启动后需要关闭时候,直接shutdown会导致正在处理的请求中断,而采用gracefulshutdown可以实现不再接受新的请求,并将已接收到的请求处理完毕再关闭程序释放资源 Springbootgracefulshutdown应用场景Springboot中提供了优雅停机方案,在关闭阶段会给应用程序......
  • SpringCloud Alibaba入门5之Hystrix的使用
    我们继续在前一章的基础上进行学习。https://blog.51cto.com/u_13312531/6546544使用目的:上一章我们已经使用OpenFeign完成了服务间的调用,如果现在存在大量的服务,每个服务有若干个节点,其中一个节点发生故障,加入的请求一直阻塞,大量堆积的请求会把服务打崩,可能导致级联式的失败,甚至......