{"id":88026,"date":"2019-02-11T13:00:16","date_gmt":"2019-02-11T11:00:16","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=88026"},"modified":"2019-02-11T10:04:20","modified_gmt":"2019-02-11T08:04:20","slug":"difference-spring-boot-integration-test","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html","title":{"rendered":"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test"},"content":{"rendered":"<p>Even though both <code>@ContextConfiguration<\/code> and <code>@SpringApplicationConfiguration<\/code> annotations are used along with<code>SpringJUnit4ClassRunner<\/code> to specify how to load the Spring application context, there is a subtle difference between them. Although <code>@ContextConfiguration<\/code> does a great job in loading application context it doesn&#8217;t take full advantage of <a rel=\"noopener\" href=\"https:\/\/javarevisited.blogspot.com\/2018\/11\/top-5-spring-boot-features-java.html#axzz5YFjHrt5j\" target=\"_blank\">Spring Boot features<\/a>. Spring Boot applications are ultimately loaded by either SpringApplication ( in case of the JAR) or <code>SpringBootServletInitializer<\/code>. This class not only loads the application context but also enables logging and loading of external properties specified in application.properties or application.yml file, and other features of Spring Boot framework, which is not loaded or enabled by the&nbsp;<br \/><code>@ContextConfiguration<\/code> annotation.<br \/>&nbsp;<br \/><a name=\"more\" class=\"mce-item-anchor\"><\/a><br \/>In short, it&#8217;s better to use the <code>@SpringApplicatoinConfiguration<\/code> annotations rather than <code>@ContextConfiguration<\/code> for writing an integration test for Spring boot application, including a test for web pages or front end of the application.<\/p>\n<p>Now that you know the essential difference between <code>@ContextConfiguration<\/code> and <code>@SpringApplicationConfiguration<\/code> annotations while writing <a rel=\"noopener\" href=\"http:\/\/www.java67.com\/2018\/06\/5-best-courses-to-learn-spring-boot-in.html\" target=\"_blank\">Spring boot tests<\/a>, let&#8217;s understand that in a little bit more details with some code samples.<\/p>\n<p>Spring Framework has excellent support for writing Integration test since Spring 2.5 when it introduced <code>SpringJUnit4ClassRunner<\/code> and the same goes for testing with Spring Boot application. During the Integration test, you also need to load beans and wire them up with dependency.<\/p>\n<p>Of course, you can do that manually but it&#8217;s better if Spring handles them for you, which it does. It also offers out-of-the-box features such as component scanning, autowiring, declaration transaction management, security, and caching, which comes handy for testing in a more production-like environment. <\/p>\n<h2 class=\"wp-block-heading\">Spring Boot -@ContextConfiguration example<\/h2>\n<p>Here is a simple Spring integration test with <code>SpringJUnit4ClassRunner<\/code> and<code>@ContextConfiguration<\/code> annotation, one of the <a rel=\"noopener\" href=\"http:\/\/www.java67.com\/2019\/01\/top-5-spring-boot-annotations-java-programmers-should-know.html\" target=\"_blank\">essential Spring boot annotations<\/a> for loading application context:<\/p>\n<div>\n<div id=\"highlighter_695635\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java color1\">@RunWith<\/code><code class=\"java plain\">(SpringJUnit4ClassRunner.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java color1\">@ContextConfiguration<\/code><code class=\"java plain\">(classes=BookConfiguration.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">BookServiceTest {<\/code><\/div>\n<div class=\"line number4 index3 alt1\">&nbsp;<\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java color1\">@Autowired<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java keyword\">private<\/code> <code class=\"java plain\">BookService bookService;<\/code><\/div>\n<div class=\"line number8 index7 alt1\">&nbsp;<\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java color1\">@Test<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">testBookService() {<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">Book aBook = bookService.findByTitle(<\/code><code class=\"java string\">\"Spring Boot in Action\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">assertEquals(<\/code><code class=\"java string\">\"Craig Walls\"<\/code><code class=\"java plain\">, aBook.getAuthor());<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">assertEquals(<\/code><code class=\"java value\">40<\/code><code class=\"java plain\">, aBook.getPrice());<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number16 index15 alt1\">&nbsp;<\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>As you can see, the BookServiceTest class is annotated with both the<code>@RunWith<\/code> <a rel=\"noopener\" href=\"https:\/\/javarevisited.blogspot.com\/2012\/06\/junit4-annotations-test-examples-and.html\" target=\"_blank\">JUnit annotation<\/a> and @ContextConfiguration annotations.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>The <code>@RunWith<\/code> annotation is required to enable Spring integration testing and that&#8217;s why we have passed the <code>SpringJUnit4ClassRunnner<\/code> class to it, while <code>@ContextConfiguration<\/code> annotation specifies how to load application context.<\/p>\n<p>In this example, the Spring application context defined in the<code>BookConfiguration<\/code> class will be loaded.<\/p>\n<p>The <code>SpringJUnit4ClassRunner<\/code> is a powerful class which not only loads the application context but also autowire beans into the test as well.<\/p>\n<p>For example, in this test class, we needed a BookService to test its<code>findByTitle()<\/code> method and that bean is automatically injected by <code>SpringJUnit4ClassRunner<\/code> class so we just left with writing our<br \/>testBookService() method.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"400\" height=\"300\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/Ideal-test-pyramid-spring-boot.jpeg\" alt=\"Integration Test\" class=\"wp-image-88133\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/Ideal-test-pyramid-spring-boot.jpeg 400w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/Ideal-test-pyramid-spring-boot-300x225.jpeg 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/figure>\n<\/div>\n<p>Now, coming back to <code>@ContextConfiguration<\/code>, even though it helps to load application context, it <b>doesn&#8217;t enable logging or loads additional properties<\/b> from application.properties e.g. server.port&nbsp;property which is required to change the port of embedded tomcat server in spring boot application.<\/p>\n<p>To solve that problem, you can use <code>@SpringApplicaitonCongifguation<\/code> annotation in place of <code>@ContextConfiguration<\/code> as shown below:<\/p>\n<div>\n<div id=\"highlighter_194484\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java color1\">@RunWith<\/code><code class=\"java plain\">(SpringJUnit4ClassRunner.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java color1\">@SpringApplicaitonCongifguation<\/code><code class=\"java plain\">(classes=BookConfiguration.<\/code><code class=\"java keyword\">class<\/code><code class=\"java plain\">)<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">BookServiceTest {<\/code><\/div>\n<div class=\"line number4 index3 alt1\">&nbsp;<\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java color1\">@Autowired<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java keyword\">private<\/code> <code class=\"java plain\">BookService bookService;<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\">&nbsp;<\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java color1\">@Test<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">testBookService() {<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">Book aBook = bookService.findByTitle(<\/code><code class=\"java string\">\"Cloud Native Java\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">assertEquals(<\/code><code class=\"java string\">\"Josh Long\"<\/code><code class=\"java plain\">, aBook.getAuthor());<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">assertEquals(<\/code><code class=\"java value\">40<\/code><code class=\"java plain\">, aBook.getPrice());<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>This one will behave the same as the previous example but <code>@SpringApplicationConfiguration<\/code> will also enable Spring boot logging and load additional properties defined in application.properties or application.yml file.<\/p>\n<p>That&#8217;s all about <b>the difference between <code>@ContextConfiguration<\/code> and <code>@SpringApplicationConfiguration<\/code> annotation in Spring Boot<\/b>. Even though both used along with <code>SpringJUnit4ClassRunner<\/code> and help with the loading application context, later is more useful because it also enables logging and other spring Boot features.<\/p>\n<p>It&#8217;s always better to use <code>@SpringApplicationConfiguration<\/code> while writing an integration test for the Spring Boot application to get your test as close to production as possible.<\/p>\n<p>Thanks for reading this article so far. If you like my explanation of<code>@SpringApplicationConfiguration<\/code> vs <code>@ContextConfiguration<\/code> annotation then please share with your friends and colleagues. If you have any questions or feedback then please drop a note.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Java Code Geeks with permission by Javin Paul, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener\">JCG program<\/a>. See the original article here: <a href=\"http:\/\/javarevisited.blogspot.com\/2019\/02\/difference-between-contextconfiguration-and-springapplicationConfiguration-annotations-in-spring-boot-testing.html\" target=\"_blank\" rel=\"noopener\">Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Even though both @ContextConfiguration and @SpringApplicationConfiguration annotations are used along withSpringJUnit4ClassRunner to specify how to load the Spring application context, there is a subtle difference between them. Although @ContextConfiguration does a great job in loading application context it doesn&#8217;t take full advantage of Spring Boot features. Spring Boot applications are ultimately loaded by either SpringApplication &hellip;<\/p>\n","protected":false},"author":251,"featured_media":240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[854],"class_list":["post-88026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-spring-boot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Interested to learn about Integration Test? Check our article explaining the differences between @ContextConfiguration and @SpringApplicationConfiguration\" \/>\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.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Integration Test? Check our article explaining the differences between @ContextConfiguration and @SpringApplicationConfiguration\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-11T11:00:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Javin Paul\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Javin Paul\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html\"},\"author\":{\"name\":\"Javin Paul\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/dbfdaa2ce6e5fcb8b7b0b259a84fdb40\"},\"headline\":\"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test\",\"datePublished\":\"2019-02-11T11:00:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html\"},\"wordCount\":631,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"keywords\":[\"Spring Boot\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html\",\"name\":\"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"datePublished\":\"2019-02-11T11:00:16+00:00\",\"description\":\"Interested to learn about Integration Test? Check our article explaining the differences between @ContextConfiguration and @SpringApplicationConfiguration\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"spring-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2019\\\/02\\\/difference-spring-boot-integration-test.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/dbfdaa2ce6e5fcb8b7b0b259a84fdb40\",\"name\":\"Javin Paul\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc70a0e0b9d5c6614098936b017d6c79ed7f3e0c315a1e59d7d300e4c46d726c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc70a0e0b9d5c6614098936b017d6c79ed7f3e0c315a1e59d7d300e4c46d726c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc70a0e0b9d5c6614098936b017d6c79ed7f3e0c315a1e59d7d300e4c46d726c?s=96&d=mm&r=g\",\"caption\":\"Javin Paul\"},\"description\":\"I have been working in Java, FIX Tutorial and Tibco RV messaging technology from past 7 years. I am interested in writing and meeting people, reading and learning about new subjects.\",\"sameAs\":[\"http:\\\/\\\/javarevisited.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/javin-paul\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test - Java Code Geeks","description":"Interested to learn about Integration Test? Check our article explaining the differences between @ContextConfiguration and @SpringApplicationConfiguration","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.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html","og_locale":"en_US","og_type":"article","og_title":"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test - Java Code Geeks","og_description":"Interested to learn about Integration Test? Check our article explaining the differences between @ContextConfiguration and @SpringApplicationConfiguration","og_url":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2019-02-11T11:00:16+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","type":"image\/jpeg"}],"author":"Javin Paul","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Javin Paul","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html"},"author":{"name":"Javin Paul","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/dbfdaa2ce6e5fcb8b7b0b259a84fdb40"},"headline":"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test","datePublished":"2019-02-11T11:00:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html"},"wordCount":631,"commentCount":1,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","keywords":["Spring Boot"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html","url":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html","name":"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","datePublished":"2019-02-11T11:00:16+00:00","description":"Interested to learn about Integration Test? Check our article explaining the differences between @ContextConfiguration and @SpringApplicationConfiguration","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","width":150,"height":150,"caption":"spring-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2019\/02\/difference-spring-boot-integration-test.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Difference between @ContextConfiguration and @SpringApplicationConfiguration in Spring Boot Integration Test"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/dbfdaa2ce6e5fcb8b7b0b259a84fdb40","name":"Javin Paul","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc70a0e0b9d5c6614098936b017d6c79ed7f3e0c315a1e59d7d300e4c46d726c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc70a0e0b9d5c6614098936b017d6c79ed7f3e0c315a1e59d7d300e4c46d726c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc70a0e0b9d5c6614098936b017d6c79ed7f3e0c315a1e59d7d300e4c46d726c?s=96&d=mm&r=g","caption":"Javin Paul"},"description":"I have been working in Java, FIX Tutorial and Tibco RV messaging technology from past 7 years. I am interested in writing and meeting people, reading and learning about new subjects.","sameAs":["http:\/\/javarevisited.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/javin-paul"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/88026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/251"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=88026"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/88026\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=88026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=88026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=88026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}