{"id":6271,"date":"2022-10-23T15:06:08","date_gmt":"2022-10-23T13:06:08","guid":{"rendered":"https:\/\/kabisa.nl\/?p=6271"},"modified":"2023-10-24T12:26:28","modified_gmt":"2023-10-24T10:26:28","slug":"migrating-from-spring-native-to-spring-boot-3","status":"publish","type":"post","link":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/","title":{"rendered":"Migrating from Spring Native to Spring Boot 3"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6271\" class=\"elementor elementor-6271\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-de95a08 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"de95a08\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fcf62c9\" data-id=\"fcf62c9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7259695 elementor-widget elementor-widget-text-editor\" data-id=\"7259695\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"history-lesson\">History Lesson<\/h2><p>It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native images (<a href=\"https:\/\/spring.io\/blog\/2021\/03\/11\/announcing-spring-native-beta\">proof<\/a>). Spring launched the\u00a0<code>spring-native<\/code>\u00a0project in beta-support for everyone that wanted to have a lightning fast spring-boot application compiled with GraalVM that could achieve startup times sub 100 ms!<\/p><p>We are now reaching a new milestone in this journey as Spring announced it will move the support for compilation to native images to its General Availability with Spring Framework 6 and Spring Boot 3 (<a href=\"https:\/\/spring.io\/blog\/2022\/09\/26\/native-support-in-spring-boot-3-0-0-m5\">more proof<\/a>).<\/p><p>You as hyped as I am? You need a second to catch your breath? Good, because I couldn\u2019t wait either to migrate from the spring-native beta to Spring Boot 3. Since migrating is never an easy task, I\u2019ve listed down the hurdles I came across in the process so you can get a head start on this.<\/p><p><strong>Keep in mind that Spring Boot 3 is to be released in late November 2022, so we are working with a milestone release (3.0.0-M5) here.<\/strong><\/p><h2 id=\"lets-get-started\">Let\u2019s get started<\/h2><p>When we try to simply change the Spring Boot version to 3.0.0-M5 in our build.gradle file we get the following error:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2cc1656 elementor-widget elementor-widget-code-highlight\" data-id=\"2cc1656\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>- Plugin Repositories (could not resolve plugin artifact 'org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.0-M5')\n  Searched in the following repositories:\n    maven(https:\/\/repo.spring.io\/release)\n    MavenRepo\n    Gradle Central Plugin Repository<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aaab33e elementor-widget elementor-widget-text-editor\" data-id=\"aaab33e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>As Spring Boot 3.0.0-M5 is a milestone release, we need to include the milestone repository in our repositories section.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f339f68 elementor-widget elementor-widget-code-highlight\" data-id=\"f339f68\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>repositories {\n  maven { url 'https:\/\/repo.spring.io\/milestone' }\n  mavenCentral()\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d7deac5 elementor-widget elementor-widget-text-editor\" data-id=\"d7deac5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>When you are using any Spring Boot plugins, you should also change the repositories for plugins in the settings.gradle file.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f35248 elementor-widget elementor-widget-code-highlight\" data-id=\"9f35248\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>pluginManagement {\n\trepositories {\n\t\tmaven { url 'https:\/\/repo.spring.io\/milestone' }\n\t\tmavenCentral()\n\t\tgradlePluginPortal()\n\t}\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2455838 elementor-widget elementor-widget-text-editor\" data-id=\"2455838\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>So far so good, let\u2019s see what we get when we build our application.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ae150a1 elementor-widget elementor-widget-code-highlight\" data-id=\"ae150a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>Plugin [id: 'org.springframework.experimental.aot', version: '0.11.4'] was not found in any of the following sources:\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3de0af7 elementor-widget elementor-widget-text-editor\" data-id=\"3de0af7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Experimental? No longer! Since it\u2019s now in Spring Boot 3.0.0 we can get rid of this plugin.<\/p><p>Let\u2019s see where that gets us..<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df8cc5f elementor-widget elementor-widget-code-highlight\" data-id=\"df8cc5f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>> Task :compileJava FAILED\nerror: package org.springframework.nativex.hint does not exist<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-97249d3 elementor-widget elementor-widget-text-editor\" data-id=\"97249d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Alright alright, nothing we can\u2019t handle. When building a Java application and compiling it with GraalVM we often need to play around with some GraalVM settings in the form of some CLI options that we need to pass along.<\/p><p>Previously this could\u2019ve been done by using @NativeHint annotations in your codebase, however this is no longer available in the Spring Boot 3 release.<\/p><p>Luckily we can still modify our GraalVM build command depending on which build method your application uses.<\/p><ol><li>We can compile our application with GraalVM directly into a Docker image by using Paketo.<\/li><li>We can use the\u00a0<a href=\"https:\/\/graalvm.github.io\/native-build-tools\/latest\/index.html\">Native Build Tools<\/a>\u00a0to compile our application into a binary.<\/li><\/ol><p>Either way there is still a way to provide those necessary build options to GraalVM.<\/p><h3 id=\"paketo\">Paketo<\/h3><p>When using Paketo we can add the build options using an environment variable that is used during the build process:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c0e5c2 elementor-widget elementor-widget-code-highlight\" data-id=\"4c0e5c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>bootBuildImage {\n\tbuilder = 'paketobuildpacks\/builder:base'\n\tenvironment = [\n\t   'BP_NATIVE_IMAGE': 'true',\n\t   'BP_NATIVE_IMAGE_BUILD_ARGUMENTS': '--initialize-at-build-time=ch.qos.logback,org.slf4j.impl.StaticLoggerBinder,org.slf4j.LoggerFactory,org.slf4j.MDC --initialize-at-run-time=io.netty.handler.ssl.BouncyCastleAlpnSslUtils' ]\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-611e0d1 elementor-widget elementor-widget-text-editor\" data-id=\"611e0d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 id=\"native-build-tools\">Native Build Tools<\/h3><p>When using the Native Build Tools you can add it by using the\u00a0<a href=\"https:\/\/graalvm.github.io\/native-build-tools\/latest\/gradle-plugin.html#_native_image_options\">NativeImageOptions<\/a><\/p><h2 id=\"results\">Results<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef9b75d elementor-widget elementor-widget-code-highlight\" data-id=\"ef9b75d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>BUILD SUCCESSFUL in 4s\n6 actionable tasks: 6 executed<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e4e62b elementor-widget elementor-widget-text-editor\" data-id=\"3e4e62b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One down, one to go! Let\u2019s try building our native image with\u00a0<code>.\/gradlew clean bootBuildImage<\/code>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5860b26 elementor-widget elementor-widget-code-highlight\" data-id=\"5860b26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>Successfully built image 'docker.io\/library\/spring-boot-native-image:0.0.1-SNAPSHOT'\n\nBUILD SUCCESSFUL in 2m 43s\n6 actionable tasks: 6 executed<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6821dff elementor-widget elementor-widget-text-editor\" data-id=\"6821dff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Look at that, we\u2019ve got our Spring Boot 3.0.0-M5 project\u00a0<strong>successfully<\/strong>\u00a0built into a GraalVM native image! \ud83c\udf89<\/p><p>That\u2019s all folks \ud83e\udd18 it was actually pretty easy..<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>History Lesson It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native images (proof). Spring launched the\u00a0spring-native\u00a0project in beta-support for everyone that wanted to have a lightning fast spring-boot application compiled with GraalVM that could achieve startup times sub 100 ms! [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":6485,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[149],"tags":[],"class_list":["post-6271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Migrating from Spring Native to Spring Boot 3 | Kabisa Software Artisans<\/title>\n<meta name=\"description\" content=\"History Lesson It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrating from Spring Native to Spring Boot 3 | Kabisa Software Artisans\" \/>\n<meta property=\"og:description\" content=\"History Lesson It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Kabisa Software Artisans\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kabisaict\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-23T13:06:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-24T10:26:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/10\/Cover-Insight-Springboot-3.0-1024x683.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joery Vreijsen\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joery Vreijsen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Migrating from Spring Native to Spring Boot 3 | Kabisa Software Artisans","description":"History Lesson It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native","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:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/","og_locale":"en_US","og_type":"article","og_title":"Migrating from Spring Native to Spring Boot 3 | Kabisa Software Artisans","og_description":"History Lesson It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native","og_url":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/","og_site_name":"Kabisa Software Artisans","article_publisher":"https:\/\/www.facebook.com\/kabisaict","article_published_time":"2022-10-23T13:06:08+00:00","article_modified_time":"2023-10-24T10:26:28+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/10\/Cover-Insight-Springboot-3.0-1024x683.png","type":"image\/png"}],"author":"Joery Vreijsen","twitter_misc":{"Written by":"Joery Vreijsen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#article","isPartOf":{"@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/"},"author":{"name":"Joery Vreijsen","@id":"https:\/\/kabisa.nl\/en\/#\/schema\/person\/3d01a54b19b4bb85caf102f201ae600a"},"headline":"Migrating from Spring Native to Spring Boot 3","datePublished":"2022-10-23T13:06:08+00:00","dateModified":"2023-10-24T10:26:28+00:00","mainEntityOfPage":{"@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/"},"wordCount":486,"commentCount":0,"publisher":{"@id":"https:\/\/kabisa.nl\/en\/#organization"},"image":{"@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/10\/Cover-Insight-Springboot-3.0.png","articleSection":["Tech blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/","url":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/","name":"Migrating from Spring Native to Spring Boot 3 | Kabisa Software Artisans","isPartOf":{"@id":"https:\/\/kabisa.nl\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#primaryimage"},"image":{"@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/10\/Cover-Insight-Springboot-3.0.png","datePublished":"2022-10-23T13:06:08+00:00","dateModified":"2023-10-24T10:26:28+00:00","description":"History Lesson It was the year 2021.. wait yes that was just last year.. when Spring announced it would be starting to support compilation to native","breadcrumb":{"@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#primaryimage","url":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/10\/Cover-Insight-Springboot-3.0.png","contentUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/10\/Cover-Insight-Springboot-3.0.png","width":4500,"height":3000,"caption":"Springboot 3"},{"@type":"BreadcrumbList","@id":"https:\/\/kabisa.nl\/en\/tech\/migrating-from-spring-native-to-spring-boot-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kabisa.nl\/en\/"},{"@type":"ListItem","position":2,"name":"Tech blog","item":"https:\/\/kabisa.nl\/en\/tech\/"},{"@type":"ListItem","position":3,"name":"Migrating from Spring Native to Spring Boot 3"}]},{"@type":"WebSite","@id":"https:\/\/kabisa.nl\/en\/#website","url":"https:\/\/kabisa.nl\/en\/","name":"Kabisa Software Artisans","description":"Mission-critical Software for Hightech, Fintech &amp; E-commerce","publisher":{"@id":"https:\/\/kabisa.nl\/en\/#organization"},"alternateName":"Kabisa","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kabisa.nl\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kabisa.nl\/en\/#organization","name":"Cloud Legends","alternateName":"Kabisa","url":"https:\/\/kabisa.nl\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kabisa.nl\/en\/#\/schema\/logo\/image\/","url":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/12\/kabisa-favicon.png","contentUrl":"https:\/\/kabisa.nl\/wp-content\/uploads\/2022\/12\/kabisa-favicon.png","width":512,"height":512,"caption":"Cloud Legends"},"image":{"@id":"https:\/\/kabisa.nl\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kabisaict","https:\/\/x.com\/kabisasoftware"],"description":"Software Development is onze core-business. Kabisa ontwikkelt innovatieve maatwerk software die naadloos aansluit bij de behoeftes van klanten en eindgebruikers. Dat doen we in nauwe samenwerking in elke fase van het proces: co-creatie noemen we dat.","email":"info@kabisa.nl","telephone":"0495 430 798","legalName":"Kabisa B.V.","foundingDate":"2006-01-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"51","maxValue":"200"}},{"@type":"Person","@id":"https:\/\/kabisa.nl\/en\/#\/schema\/person\/3d01a54b19b4bb85caf102f201ae600a","name":"Joery Vreijsen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a7fd899168ff4d848ffd6f23a537957c9f47914239de9482363b0b2d45b4af2f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a7fd899168ff4d848ffd6f23a537957c9f47914239de9482363b0b2d45b4af2f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a7fd899168ff4d848ffd6f23a537957c9f47914239de9482363b0b2d45b4af2f?s=96&d=mm&r=g","caption":"Joery Vreijsen"}}]}},"_links":{"self":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts\/6271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/comments?post=6271"}],"version-history":[{"count":5,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts\/6271\/revisions"}],"predecessor-version":[{"id":6277,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/posts\/6271\/revisions\/6277"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/media\/6485"}],"wp:attachment":[{"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/media?parent=6271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/categories?post=6271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kabisa.nl\/en\/wp-json\/wp\/v2\/tags?post=6271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}