{"id":22359,"date":"2024-03-15T23:26:31","date_gmt":"2024-03-15T23:26:31","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/"},"modified":"2024-03-21T22:41:34","modified_gmt":"2024-03-21T22:41:34","slug":"how-to-load-two-classes-in-spring-in-a-specific-order","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/","title":{"rendered":"How to load two classes in spring in a specific order?"},"content":{"rendered":"<p>In Spring, the loading order of classes can be specified either through configuration files or by using annotations.<\/p>\n<ol>\n<li><bean> tag<\/li>\n<li>relies on<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">bean<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"classA\"<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"com.example.ClassA\"<\/span> <span class=\"hljs-attr\">depends-on<\/span>=<span class=\"hljs-string\">\"classB\"<\/span> \/&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">bean<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"classB\"<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"com.example.ClassB\"<\/span> \/&gt;<\/span>\r\n<\/code><\/pre>\n<p>In the aforementioned code, classA depends on classB, so when the container starts up, classB will be loaded first before classA.<\/p>\n<ol>\n<li>@Requires<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Component<\/span>\r\n<span class=\"hljs-meta\">@DependsOn(\"classB\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ClassA<\/span> {\r\n    <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n}\r\n\r\n<span class=\"hljs-meta\">@Component<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ClassB<\/span> {\r\n    <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In the code above, ClassA relies on ClassB, so when the container starts, it will first load ClassB and then ClassA.<\/p>\n<p>It is important to ensure that the classes being depended upon are loaded into the container, whether using configuration files or annotations. Failure to do so will result in an exception. Additionally, caution must be taken when dealing with circular dependencies to avoid endless loops.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Spring, the loading order of classes can be specified either through configuration files or by using annotations. tag relies on &lt;bean id=&#8221;classA&#8221; class=&#8221;com.example.ClassA&#8221; depends-on=&#8221;classB&#8221; \/&gt; &lt;bean id=&#8221;classB&#8221; class=&#8221;com.example.ClassB&#8221; \/&gt; In the aforementioned code, classA depends on classB, so when the container starts up, classB will be loaded first before classA. @Requires @Component @DependsOn(&#8220;classB&#8221;) public [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-22359","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to load two classes in spring in a specific order? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to load two classes in spring in a specific order?\" \/>\n<meta property=\"og:description\" content=\"In Spring, the loading order of classes can be specified either through configuration files or by using annotations. tag relies on &lt;bean id=&quot;classA&quot; class=&quot;com.example.ClassA&quot; depends-on=&quot;classB&quot; \/&gt; &lt;bean id=&quot;classB&quot; class=&quot;com.example.ClassB&quot; \/&gt; In the aforementioned code, classA depends on classB, so when the container starts up, classB will be loaded first before classA. @Requires @Component @DependsOn(&quot;classB&quot;) public [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T23:26:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T22:41:34+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"How to load two classes in spring in a specific order?\",\"datePublished\":\"2024-03-15T23:26:31+00:00\",\"dateModified\":\"2024-03-21T22:41:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\"},\"wordCount\":120,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\",\"name\":\"How to load two classes in spring in a specific order? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T23:26:31+00:00\",\"dateModified\":\"2024-03-21T22:41:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to load two classes in spring in a specific order?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to load two classes in spring in a specific order? - Blog - Silicon Cloud","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:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/","og_locale":"en_US","og_type":"article","og_title":"How to load two classes in spring in a specific order?","og_description":"In Spring, the loading order of classes can be specified either through configuration files or by using annotations. tag relies on &lt;bean id=\"classA\" class=\"com.example.ClassA\" depends-on=\"classB\" \/&gt; &lt;bean id=\"classB\" class=\"com.example.ClassB\" \/&gt; In the aforementioned code, classA depends on classB, so when the container starts up, classB will be loaded first before classA. @Requires @Component @DependsOn(\"classB\") public [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T23:26:31+00:00","article_modified_time":"2024-03-21T22:41:34+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"How to load two classes in spring in a specific order?","datePublished":"2024-03-15T23:26:31+00:00","dateModified":"2024-03-21T22:41:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/"},"wordCount":120,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/","name":"How to load two classes in spring in a specific order? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T23:26:31+00:00","dateModified":"2024-03-21T22:41:34+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-load-two-classes-in-spring-in-a-specific-order\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to load two classes in spring in a specific order?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=22359"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22359\/revisions"}],"predecessor-version":[{"id":56276,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22359\/revisions\/56276"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=22359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=22359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=22359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}