

{"id":20286,"date":"2018-07-05T04:10:22","date_gmt":"2018-07-05T04:10:22","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=20286"},"modified":"2018-09-15T12:27:21","modified_gmt":"2018-09-15T06:57:21","slug":"spring-bean-life-cycle","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/","title":{"rendered":"Spring Bean Life Cycle &#8211;  Initialization and Destruction"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1901,&quot;href&quot;:&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Spring_Framework&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20251003105514\\\/https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Spring_Framework&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-10 07:30:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-15 12:34:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-19 00:53:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-22 07:31:03&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-28 18:03:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-02 18:56:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-05 21:42:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-11 11:07:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-18 16:10:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-24 11:15:10&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-02 10:03:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-06 11:15:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-11 05:03:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-16 13:02:34&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-21 05:52:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-25 03:33:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-03 07:27:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-15 08:39:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-18 09:30:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-01 17:30:57&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-11 21:45:34&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-16 07:00:58&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-21 06:40:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-24 15:27:59&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-27 16:08:07&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-04-30 17:25:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-06 03:04:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-14 20:58:34&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-18 03:05:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-21 18:04:49&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-05-25 06:08:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-02 05:46:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-10 06:21:50&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-10 06:21:50&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<h2>1. Objective<\/h2>\n<p>In our previous tutorial, we learned <a href=\"https:\/\/data-flair.training\/blogs\/spring-beans-autowiring\/\"><strong>Spring Beans Autowiring<\/strong><\/a>. Here, in this article,\u00a0we will learn about the Spring Bean life cycle. The life cycle of <a href=\"https:\/\/data-flair.training\/blogs\/spring-bean\/\"><strong>Spring Beans<\/strong><\/a> is very easy to understand. You will get the detailed analysis of Spring Bean Life cycle using Eclipse IDE example. The two important things that will be taught are bean lifecycle callback methods which are required during initialization and destruction.<br \/>\nSo, let&#8217;s start Spring Bean Life Cycle.<\/p>\n<div id=\"attachment_22141\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-22141\" class=\"wp-image-22141 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg\" alt=\"Spring Bean Life Cycle - Initialization and Destruction\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1-1024x536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-22141\" class=\"wp-caption-text\">Spring Bean Life Cycle &#8211; Initialization and Destruction<\/p><\/div>\n<h2>2. Spring Bean Life Cycle<\/h2>\n<p>When the beans get instantiated it is required to perform some initialization to get it to an unstable state. Also, when the bean is no longer required and gets removed from the<a href=\"https:\/\/data-flair.training\/blogs\/spring-ioc-containers\/\"><strong> IoC container<\/strong><\/a> some clean up is required. There are lists of things that take place behind during the time of initialization of bean and its destruction. You will declare the bean using &lt;bean&gt; with init method and destroy-method for defining the setup and tear down of the bean.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-event-handling\/\">Read About Spring Event Handling \u2013 5 Standard of Event Handlers<\/a><\/strong><br \/>\nThe init method attribute will get specified when the bean needs to get initialized. Similarly, as the init the destroy-method will get called just before the bean is removed from the container.<\/p>\n<h3>a.\u00a0 Initialisation Callbacks<\/h3>\n<p>Inside the method afterPropertiesSet() implement the interface org.springframework,beans.factory.InitializingBean and do the initialization work as below:<\/p>\n<pre class=\"EnlighterJSRAW\">public class ExampleBean implements InitializingBean {\r\n\u00a0\u00a0 public void afterPropertiesSet() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ do some initialization work\r\n\u00a0\u00a0 }\r\n}<\/pre>\n<p>If you are using <em>XML based configuration metadata<\/em> use the attribute init method to give the name of the non-argument void method.<\/p>\n<pre class=\"EnlighterJSRAW\">&lt;bean id = \"exampleBean\" class = \"examples.ExampleBean\" init-method = \"init\"\/&gt;<\/pre>\n<p>Following is the definition of a class using init():<\/p>\n<pre class=\"EnlighterJSRAW\">public class ExampleBean {\r\n\u00a0\u00a0 public void init() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ do some initialization work\r\n\u00a0\u00a0 }\r\n}<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-mvc-framework\/\">Let&#8217;s Revise Integration of MVC with Spring<\/a><\/strong><\/p>\n<h3>b. Destruction Callbacks<\/h3>\n<p>Inside the method destroy() implement the interface org.springframework,beans.factory.InitializingBean and do the initialization work as below<\/p>\n<pre class=\"EnlighterJSRAW\">public class ExampleBean implements DisposableBean {\r\n\u00a0\u00a0 public void destroy() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ do some destruction work\r\n\u00a0\u00a0 }\r\n}<\/pre>\n<p>If you are using XML based configuration metadata use the attribute destroy-method to give the name of the non-argument void method.<\/p>\n<pre class=\"EnlighterJSRAW\">&lt;bean id = \"exampleBean\" class = \"examples.ExampleBean\" destroy-method = \"destroy\"\/&gt;<\/pre>\n<p>Following is the definition of the class using destroy():<\/p>\n<pre class=\"EnlighterJSRAW\">public class ExampleBean {\r\n\u00a0\u00a0 public void destroy() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ do some destruction work\r\n\u00a0\u00a0 }\r\n}<\/pre>\n<p>If you are using the Spring Framework container for non-web application environment you need to register a shutdown hook with JVM using the method called registerShutdownHook(). So doing that ensures a graceful shutdown along with the call to the relevant destroys methods on singleton beans.<br \/>\nIt is needed that you don\u2019t use the callback method as the XML configuration provides the flexibility in naming your method.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-transaction-management\/\">Follow this link to know about Spring Transaction Management\u00a0<\/a><\/strong><br \/>\nLet\u2019s define a working example using Eclipse IDE having the following steps:<\/p>\n<ol>\n<li>Create your project with name SpringEx and a package com.example. This should be under the src folder of your created project.<\/li>\n<li>Add the Spring Libraries that are required using the Add External JARs options.<\/li>\n<li>Create HelloWorld.java and MainApp.java under the above-made package.<\/li>\n<li>Write the Beans.xml configuration file under the src folder.<\/li>\n<li>Finally, write code for all Java files and Bean config file and run the application as described.<\/li>\n<\/ol>\n<p><strong>The code for HelloWorld.java is as follow:<\/strong><br \/>\npackage com.example;<\/p>\n<pre class=\"EnlighterJSRAW\">public class HelloWorld {\r\n\u00a0\u00a0 private String message;\r\n\u00a0\u00a0 public void setMessage(String message){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 this.message = message;\r\n\u00a0\u00a0 }\r\n\u00a0\u00a0 public void getMessage(){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Your Message : \" + message);\r\n\u00a0\u00a0 }\r\n\u00a0\u00a0 public void init(){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Bean is going through init.\");\r\n\u00a0\u00a0 }\r\n\u00a0\u00a0 public void destroy() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Bean will destroy now.\");\r\n\u00a0\u00a0 }\r\n}<\/pre>\n<p>In MainApp.java file you have to register a shutdown hook method called registerShutdownHook() declared in class AbstractApplicationContext. This method will make sure the shutdown using the relevant destroy methods.<br \/>\npackage com.example;<\/p>\n<pre class=\"EnlighterJSRAW\">import org.springframework.context.support.AbstractApplicationContext;\r\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\r\npublic class MainApp {\r\npublic static void main(String[] args) {\r\nAbstractApplicationContext context = new ClassPathXmlApplicationContext(\"Beans.xml\");\r\nHelloWorld obj = (HelloWorld) context.getBean(\"helloWorld\");\r\nobj.getMessage();\r\ncontext.registerShutdownHook();\r\n}\r\n}<\/pre>\n<p>Following is the Beans.xml configuration file which is required for the methods init and destroy:<\/p>\n<pre class=\"EnlighterJSRAW\">&lt;?xml version = \"1.0\" encoding = \"UTF-8\"?&gt;\r\n&lt;beans xmlns = \"http:\/\/www.springframework.org\/schema\/beans\"\r\nxmlns:xsi = \"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\nxsi:schemaLocation = \"http:\/\/www.springframework.org\/schema\/beans\r\nhttp:\/\/www.springframework.org\/schema\/beans\/spring-beans-3.0.xsd\"&gt;\r\n&lt;bean id = \"helloWorld\" class = \"com.example.HelloWorld\" init-method = \"init\"\r\ndestroy-method = \"destroy\"&gt;\r\n&lt;property name = \"message\" value = \"Hello World!\"\/&gt;\r\n&lt;\/bean&gt;\r\n&lt;\/beans&gt;<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-batch\/\">Let&#8217;s discuss Spring Batch Tutorial\u00a0<\/a><\/strong><br \/>\nAfter you are writing the codes and configuration files now run the application. If everything is right you will see the following message as output:<br \/>\nBean is going through init.<br \/>\n<strong>Your Message: Hello World!<\/strong><br \/>\nBean will destroy now.<\/p>\n<h3>c. Default Initialization and Destroy Methods<\/h3>\n<p>You don\u2019t need the declaration of the methods in it and destroy if there are many beans with initialization and destroy methods having same names. Instead, you have default init and destroy methods as follows:<\/p>\n<pre class=\"EnlighterJSRAW\">&lt;beans xmlns = \"http:\/\/www.springframework.org\/schema\/beans\"\r\nxmlns:xsi = \"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\nxsi:schemaLocation = \"http:\/\/www.springframework.org\/schema\/beans\r\nhttp:\/\/www.springframework.org\/schema\/beans\/spring-beans-3.0.xsd\"\r\ndefault-init-method = \"init\"\r\ndefault-destroy-method = \"destroy\"&gt;\r\n&lt;bean id = \"...\" class = \"...\"&gt;\r\n&lt;!-- collaborators and configuration for this bean go here --&gt;\r\n&lt;\/bean&gt;\r\n&lt;\/beans&gt;<\/pre>\n<p>So, this was all about Spring Bean Life cycle. Hope you like our explanation.<\/p>\n<h2>3. Conclusion<\/h2>\n<p>Hence, in this Spring Bean Life Cycle tutorial, we learned about the life cycle of the Spring beans which includes the two important methods init and destroy. These are used during the initialization and destruction of the Spring Beans. You saw the analysis using the working example Eclipse IDE. The next article brings you more analysis of the Spring Beans. Still, if you have any query regarding Spring Life Cycle, feel free to ask in the comment section.<br \/>\nRelated Topic-<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-java-based-configuration\/\">\u00a0Spring Java Based Configuration<\/a><\/strong><br \/>\n<strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Spring_Framework\">For reference<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Objective In our previous tutorial, we learned Spring Beans Autowiring. Here, in this article,\u00a0we will learn about the Spring Bean life cycle. The life cycle of Spring Beans is very easy to understand.&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":22141,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64],"tags":[6713,6714,8222,13250,13252,13253,13254],"class_list":["post-20286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring","tag-initialization-of-bean-in-spring","tag-initialization-of-spring-bean","tag-life-cycle-of-spring-beans","tag-spring-bean-initialization","tag-spring-bean-life-cycle-annotation","tag-spring-bean-life-cycle-diagram","tag-spring-bean-life-cycle-flow"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spring Bean Life Cycle - Initialization and Destruction - DataFlair<\/title>\n<meta name=\"description\" content=\"Spring Bean Life Cycle - Initialization Callbacks, Destruction Callbacks, Default Initialization and Destroy Methods, Life cycle of Spring Framework\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Bean Life Cycle - Initialization and Destruction - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Spring Bean Life Cycle - Initialization Callbacks, Destruction Callbacks, Default Initialization and Destroy Methods, Life cycle of Spring Framework\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-05T04:10:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-09-15T06:57:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Bean Life Cycle - Initialization and Destruction - DataFlair","description":"Spring Bean Life Cycle - Initialization Callbacks, Destruction Callbacks, Default Initialization and Destroy Methods, Life cycle of Spring Framework","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/","og_locale":"en_US","og_type":"article","og_title":"Spring Bean Life Cycle - Initialization and Destruction - DataFlair","og_description":"Spring Bean Life Cycle - Initialization Callbacks, Destruction Callbacks, Default Initialization and Destroy Methods, Life cycle of Spring Framework","og_url":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-07-05T04:10:22+00:00","article_modified_time":"2018-09-15T06:57:21+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Spring Bean Life Cycle &#8211; Initialization and Destruction","datePublished":"2018-07-05T04:10:22+00:00","dateModified":"2018-09-15T06:57:21+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/"},"wordCount":748,"commentCount":1,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg","keywords":["initialization of bean in Spring","initialization of Spring bean","life cycle of Spring Beans","Spring Bean initialization","spring bean life cycle annotation","spring bean life cycle diagram","spring bean life cycle flow"],"articleSection":["Spring Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/","url":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/","name":"Spring Bean Life Cycle - Initialization and Destruction - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg","datePublished":"2018-07-05T04:10:22+00:00","dateModified":"2018-09-15T06:57:21+00:00","description":"Spring Bean Life Cycle - Initialization Callbacks, Destruction Callbacks, Default Initialization and Destroy Methods, Life cycle of Spring Framework","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-Bean-Life-Cycle-01-1.jpg","width":1200,"height":628,"caption":"Spring Bean Life Cycle - Initialization and Destruction"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/spring-bean-life-cycle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Reading data from external files","item":"https:\/\/data-flair.training\/blogs\/tag\/reading-data-from-external-files\/"},{"@type":"ListItem","position":3,"name":"Spring Bean Life Cycle &#8211; Initialization and Destruction"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=20286"}],"version-history":[{"count":3,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20286\/revisions"}],"predecessor-version":[{"id":32625,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20286\/revisions\/32625"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/22141"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=20286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=20286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=20286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}