{"id":24891,"date":"2015-08-11T11:50:14","date_gmt":"2015-08-11T06:20:14","guid":{"rendered":"https:\/\/tothenewco.pro\/blog\/?p=24891"},"modified":"2016-12-19T15:07:36","modified_gmt":"2016-12-19T09:37:36","slug":"aem-integration-with-spring","status":"publish","type":"post","link":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/","title":{"rendered":"AEM Integration with Spring"},"content":{"rendered":"<p>The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for the projects, which require data exchange with existing enterprise systems.<\/p>\n<p>We would be using the <strong>Spring OSGi Extender<\/strong> bundles. This bundle is responsible for instantiating the Spring application contexts for your application bundles. It serves the same purpose as the <a href=\"http:\/\/docs.spring.io\/autorepo\/docs\/spring-framework\/3.0.x\/api\/org\/springframework\/web\/context\/ContextLoaderListener.html\">ContextLoaderListener<\/a>\u00a0does for Spring web applications. Once the extender bundle is installed and started it looks for any existing Spring-powered bundles that are already in the\u00a0ACTIVE\u00a0state and creates application contexts on their behalf. In addition, it listens for bundle starting events and automatically creates an application context for any Spring-powered bundle that is subsequently started.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-24892\" src=\"\/blog\/wp-ttn-blog\/uploads\/2015\/08\/sp1.png\" alt=\"sp1\" width=\"595\" height=\"344\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-24893\" src=\"\/blog\/wp-ttn-blog\/uploads\/2015\/08\/test.png\" alt=\"test\" width=\"552\" height=\"541\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Required Bundles and there version<\/p>\n<table width=\"421\">\n<tbody>\n<tr>\n<td width=\"259\"><strong>BUNDLES<\/strong><\/td>\n<td width=\"162\"><strong>VERSIONS<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"259\">spring-osgi-extender<\/td>\n<td width=\"162\">2.0.0<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">spring-osgi-core<\/td>\n<td width=\"162\">2.0.0<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">spring-osgi-io<\/td>\n<td width=\"162\">2.0.0<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">com.springsource.org.aopalliance<\/td>\n<td width=\"162\">1.0.0<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.core<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.context<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.beans<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.aop<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.asm<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.expression<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<tr>\n<td width=\"259\">org.springframework.context.support<\/td>\n<td width=\"162\">3.1.1.RELEASE<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>OSGI \u2013 spring application context :\u00a0<\/strong> org.springframeork.osgi.bundle.extender queries all of the existing bundles in the resolved state to learn if any of them is Spring powered. The extender bundle considers a bundle to be spring powered\u00a0if it has the\u00a0Spring-Context\u00a0manifest header OR if it has XML files in its\u00a0META-INF\/spring\u00a0folder.<\/p>\n<p>Let us take the second approach and add configuration files into META-INF\/spring folder.<\/p>\n<p>Note: <strong>META-INF\/spring<\/strong> folder should be manually created under src\/main\/resources folder<\/p>\n<p>Structure:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-25406\" src=\"\/blog\/wp-ttn-blog\/uploads\/2015\/08\/structure.png\" alt=\"structure\" width=\"389\" height=\"406\" \/><\/p>\n<p><strong>applicationContext.xml<\/strong>: This xml file will be having the definitions of the beans used in the same bundle. All the beans defined in this xml will be instantiated once this bundle gets deployed in felix container.<br \/>\n<strong>Sample applicationContext.xml<\/strong><\/p>\n<p>[xml]<br \/>\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br \/>\n&lt;beans xmlns=&quot;http:\/\/www.springframework.org\/schema\/beans&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xmlns:context=&quot;http:\/\/www.springframework.org\/schema\/context&quot; xsi:schemaLocation=&quot;http:\/\/www.springframework.org\/schema\/beans http:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd   http:\/\/www.springframework.org\/schema\/context ;<br \/>\n    &lt;!&#8211; Tell Spring to process annotations &#8211;&gt;<br \/>\n    &lt;context:annotation-config \/&gt;<br \/>\n    &lt;context:component-scan base-package=&quot;com.ig.core&quot; \/&gt;<br \/>\n    &lt;bean id=&quot;demoService&quot; class=&quot;com.ig.core.impl.DemoService&quot; \/&gt;<br \/>\n    &lt;bean id=&quot;myServlet&quot; class=&quot;com.ig.core.MyServlet&quot; \/&gt;<br \/>\n&lt;\/beans&gt;<br \/>\n[\/xml]<\/p>\n<p><strong>Osgi-context.xml:\u00a0<\/strong>Provides a Spring-OSGi Managed Service reference ( slingRepository,workflowmanager,resourceResolverFactory or custom service ) to other implementations.<\/p>\n<p><strong>sample Osgi-context.xml:<\/strong><\/p>\n<p>[xml]<br \/>\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br \/>\n&lt;beans xmlns=&quot;http:\/\/www.springframework.org\/schema\/beans&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xmlns:osgi=&quot;http:\/\/www.springframework.org\/schema\/osgi&quot; xsi:schemaLocation=&quot;http:\/\/www.springframework.org\/schema\/beans http:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd http:\/\/www.springframework.org\/schema\/osgi ;<br \/>\n    &lt;osgi:reference id=&quot;slingRepository&quot; interface=&quot;org.apache.sling.jcr.api.SlingRepository&quot; \/&gt;<br \/>\n    &lt;osgi:reference id=&quot;sampleService&quot; interface=&quot;com.ig.core.impl.SampleService&quot; \/&gt;<br \/>\n    &lt;osgi:reference id=&quot;resourceResolverFactory&quot; interface=&quot;org.apache.sling.api.resource.ResourceResolverFactory&quot; \/&gt;<br \/>\n&lt;\/beans&gt;<\/p>\n<p>[\/xml]<\/p>\n<p>In our next post, we will talk about spring AOP integration using this approach.<\/p>\n<p>To learn about our AEM service, please <a href=\"https:\/\/tothenewco.pro\/wcm\/cq-aem-development-consulting\">click here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for [&hellip;]<\/p>\n","protected":false},"author":82,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":95,"footnotes":""},"categories":[1],"tags":[4847,4850,4841],"class_list":["post-24891","post","type-post","status-publish","format-standard","hentry","category-technology","tag-aem","tag-osgi","tag-spring"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yagyesh\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"AEM Integration with Spring | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"AEM Integration with Spring | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#article\",\"name\":\"AEM Integration with Spring | TO THE NEW Blog\",\"headline\":\"AEM Integration with Spring\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/yagyesh\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"\\\/blog\\\/wp-ttn-blog\\\/uploads\\\/2015\\\/08\\\/sp1.png\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#articleImage\"},\"datePublished\":\"2015-08-11T11:50:14+05:30\",\"dateModified\":\"2016-12-19T15:07:36+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#webpage\"},\"articleSection\":\"Technology, AEM, OSGI, Spring\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#listItem\",\"name\":\"AEM Integration with Spring\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#listItem\",\"position\":3,\"name\":\"AEM Integration with Spring\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/yagyesh\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/yagyesh\\\/\",\"name\":\"Yagyesh\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ee3c3a5cbde01ca951fc4a59e40c9ed9143f262dd0c7f87e07d8abc5dfb2aeca?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Yagyesh\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/\",\"name\":\"AEM Integration with Spring | TO THE NEW Blog\",\"description\":\"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\\\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/aem-integration-with-spring\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/yagyesh\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/yagyesh\\\/#author\"},\"datePublished\":\"2015-08-11T11:50:14+05:30\",\"dateModified\":\"2016-12-19T15:07:36+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"AEM Integration with Spring | TO THE NEW Blog","description":"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for","canonical_url":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#article","name":"AEM Integration with Spring | TO THE NEW Blog","headline":"AEM Integration with Spring","author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/yagyesh\/#author"},"publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"},"image":{"@type":"ImageObject","url":"\/blog\/wp-ttn-blog\/uploads\/2015\/08\/sp1.png","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#articleImage"},"datePublished":"2015-08-11T11:50:14+05:30","dateModified":"2016-12-19T15:07:36+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#webpage"},"isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#webpage"},"articleSection":"Technology, AEM, OSGI, Spring"},{"@type":"BreadcrumbList","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/tothenewco.pro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/tothenewco.pro\/blog\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#listItem","name":"AEM Integration with Spring"},"previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#listItem","position":3,"name":"AEM Integration with Spring","previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/technology\/#listItem","name":"Technology"}}]},{"@type":"Organization","@id":"https:\/\/tothenewco.pro\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/tothenewco.pro\/blog\/"},{"@type":"Person","@id":"https:\/\/tothenewco.pro\/blog\/author\/yagyesh\/#author","url":"https:\/\/tothenewco.pro\/blog\/author\/yagyesh\/","name":"Yagyesh","image":{"@type":"ImageObject","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/ee3c3a5cbde01ca951fc4a59e40c9ed9143f262dd0c7f87e07d8abc5dfb2aeca?s=96&d=mm&r=g","width":96,"height":96,"caption":"Yagyesh"}},{"@type":"WebPage","@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#webpage","url":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/","name":"AEM Integration with Spring | TO THE NEW Blog","description":"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/#breadcrumblist"},"author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/yagyesh\/#author"},"creator":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/yagyesh\/#author"},"datePublished":"2015-08-11T11:50:14+05:30","dateModified":"2016-12-19T15:07:36+05:30"},{"@type":"WebSite","@id":"https:\/\/tothenewco.pro\/blog\/#website","url":"https:\/\/tothenewco.pro\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"AEM Integration with Spring | TO THE NEW Blog","og:description":"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for","og:url":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/","og:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"AEM Integration with Spring | TO THE NEW Blog","twitter:description":"The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST\/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for","twitter:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"24891","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"","og_description":"","og_object_type":"blog","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":"","og_article_tags":"","twitter_use_og":false,"twitter_card":"summary","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 06:57:33","updated":"2024-02-29 10:19:12","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAEM Integration with Spring\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/tothenewco.pro\/blog"},{"label":"Technology","link":"https:\/\/tothenewco.pro\/blog\/category\/technology\/"},{"label":"AEM Integration with Spring","link":"https:\/\/tothenewco.pro\/blog\/aem-integration-with-spring\/"}],"_links":{"self":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/24891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/users\/82"}],"replies":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/comments?post=24891"}],"version-history":[{"count":0,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/24891\/revisions"}],"wp:attachment":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/media?parent=24891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/categories?post=24891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/tags?post=24891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}