{"id":833,"date":"2012-01-13T16:32:00","date_gmt":"2012-01-13T16:32:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/java-annotations-a-real-world-spring-example.html"},"modified":"2012-10-21T22:46:25","modified_gmt":"2012-10-21T22:46:25","slug":"java-annotations-real-world-spring","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html","title":{"rendered":"Java Annotations &amp; A Real World Spring Example"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left\">An &#8220;annotation&#8221; is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language engine can understand. They don\u2019t directly affect program execution but affect indirecly if wanted.<\/p>\n<p><strong>Definition<\/strong><\/p>\n<p>An annotation is defined with @interface keyword and is similar with an interface. It has attributes which are defined like interface methods. Attributes can have default values. Let\u2019s define an annotation named \u201cPage\u201d, which defines UI pages of an application:<\/p>\n<pre class=\"brush:java\">public @interface Page {\r\n    int    id();\r\n    String url();\r\n    String icon() default \"[none]\";\r\n    String name(); default \"[none]\";\r\n}<\/pre>\n<p><strong>Usage<\/strong><\/p>\n<p>Annotations are widely used to inform compiler or compile-time\/runtime\/deployment-time processing.<br \/>\nUsage of an annotation is simpler:<\/p>\n<pre class=\"brush:java\">@Page(id=1, url=\u201dstudentView\u201d, icon=\u201cicons\/student.png\u201d, name=\u201dStudents\u201d)\r\npublic class StudentWindow extends Window { \u2026 }<\/pre>\n<p>Annotations can also be defined for methods and attributes:<\/p>\n<pre class=\"brush:java\">@AnAnnotation\r\npublic String getElementName() {\u2026}\r\n\r\n@AnAnnotation(type=\u201dmanager\u201d, score=3)\r\npublic int income;\r\n<\/pre>\n<p><strong>Examples<\/strong><\/p>\n<p><strong>1)&nbsp;<\/strong>Reflection\/code generation:<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Methods having a specific annotation can be processed at runtime:<\/p>\n<pre class=\"brush:java\">public @interface MyAnnotation { ... }\r\npublic class TestClass {\r\n    @MyAnnotation\r\n    public static method1() { ... }\r\n    @MyAnnotation\r\n    public static method2() { ... }\r\n    @MyAnnotation\r\n    public static method3() { ... }\r\n}\r\n\r\npublic static void main(String[] args) {\r\n    for (Method method : Class.forName(\"TestClass\").getMethods()) {\r\n        if (method.isAnnotationPresent(MyAnnotation.class)) {\r\n            \/\/ do what you want\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p><strong>2)<\/strong> Spring bean configuration (this section requires Spring bean configuration knowledge):<\/p>\n<p>Let\u2019s use our \u201cPage\u201d annotation again:<\/p>\n<pre class=\"brush:java\">package com.cmp.annotation;\r\npublic @interface Page {\r\n    int    id();\r\n    String url();\r\n    String icon() default \"[none]\";\r\n    String name(); default \"[none]\";\r\n}<\/pre>\n<p>Say that we have a few classes having @Page annotation in a package:<\/p>\n<pre class=\"brush:java\">@Page(id=1, url=\u201dstudentView\u201d, icon=\u201cicons\/student.png\u201d, name=\u201dStudents\u201d)\r\npublic class StudentWindow extends Window { \u2026 }\r\n<\/pre>\n<p>If we define a bean configuration as below in a Spring application-context.xml file, Spring will create class instances \u201cwhich has @Page annotation\u201d placed in \u201cgiven package\u201d.<\/p>\n<pre class=\"brush:xml\">&lt;context:component-scan base-package=\"com.cmp.ui\" annotation-config=\"true\"&gt;\r\n&lt;context:include-filter type=\"annotation\" expression=\"com.cmp.annotation.Page\"\/&gt;\r\n&lt;\/context:component-scan&gt;\r\n<\/pre>\n<p>So, we have been enforced Spring to instantiate only a selection of classes at runtime.<\/p>\n<p>For more detailed info about annotations, please refer to:<\/p>\n<p><a href=\"http:\/\/docs.oracle.com\/javase\/1.5.0\/docs\/guide\/language\/annotations.html\">http:\/\/docs.oracle.com\/javase\/1.5.0\/docs\/guide\/language\/annotations.html<\/a><br \/>\n<a href=\"http:\/\/docs.oracle.com\/javase\/tutorial\/java\/javaOO\/annotations.html\">http:\/\/docs.oracle.com\/javase\/tutorial\/java\/javaOO\/annotations.html<\/a><\/p>\n<p><strong><i>Reference: <\/i><\/strong><a href=\"http:\/\/codebalance.blogspot.com\/2011\/12\/look-into-java-annotations-real-world.html\">Java Annotations &amp; A Real World Spring Example<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/p\/jcg.html\">JCG partner<\/a> Cagdas Basaraner at the&nbsp;<a href=\"http:\/\/codebalance.blogspot.com\/\">CodeBalance<\/a>&nbsp;blog.<\/p>\n<p><strong><i>Related Articles :<\/i><\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/12\/cloning-of-serializable-and-non.html\">Cloning of Serializable and Non-Serializable Java Objects<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/12\/java-recursion-basics.html\">Java Recursion basics<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/11\/beneficial-countdownlatch-and-tricky.html\">Beneficial CountDownLatch and tricky java deadlock<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/10\/java-secret-loading-and-unloading.html\">Java Secret: Loading and unloading static fields<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/09\/use-javautilprefspreferences-instead-of.html\">Use java.util.prefs.Preferences instead of java.util.Properties<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>An &#8220;annotation&#8221; is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language engine can understand. They don\u2019t directly affect program execution but affect indirecly if wanted. Definition An annotation is defined with @interface keyword and is similar with an interface. It has attributes &hellip;<\/p>\n","protected":false},"author":133,"featured_media":148,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[343],"class_list":["post-833","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-core-java","tag-annotations"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java Annotations &amp; A Real World Spring Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"An &quot;annotation&quot; is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language\" \/>\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\/2012\/01\/java-annotations-real-world-spring.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Annotations &amp; A Real World Spring Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"An &quot;annotation&quot; is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.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=\"2012-01-13T16:32:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-10-21T22:46:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-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=\"Cagdas Basaraner\" \/>\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=\"Cagdas Basaraner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html\"},\"author\":{\"name\":\"Cagdas Basaraner\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/e6c00eea674ce03d741da69f4109cf22\"},\"headline\":\"Java Annotations &amp; A Real World Spring Example\",\"datePublished\":\"2012-01-13T16:32:00+00:00\",\"dateModified\":\"2012-10-21T22:46:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html\"},\"wordCount\":289,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"keywords\":[\"Annotations\"],\"articleSection\":[\"Core Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html\",\"name\":\"Java Annotations &amp; A Real World Spring Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"datePublished\":\"2012-01-13T16:32:00+00:00\",\"dateModified\":\"2012-10-21T22:46:25+00:00\",\"description\":\"An \\\"annotation\\\" is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/01\\\/java-annotations-real-world-spring.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\":\"Core Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/core-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Java Annotations &amp; A Real World Spring Example\"}]},{\"@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\\\/e6c00eea674ce03d741da69f4109cf22\",\"name\":\"Cagdas Basaraner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/953928d03c39ba2f43f685c234fc371907bb2d7ba654efd056bc4ab72dec102d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/953928d03c39ba2f43f685c234fc371907bb2d7ba654efd056bc4ab72dec102d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/953928d03c39ba2f43f685c234fc371907bb2d7ba654efd056bc4ab72dec102d?s=96&d=mm&r=g\",\"caption\":\"Cagdas Basaraner\"},\"description\":\"Cagdas Basaraner is a software engineer graduated from Hacettepe University Computer Engineering department (Turkey), having 5 years professional experience. He is working on JEE web technologies, and also a former developer of information systems using Microsoft technologies and Command &amp; Control (C4I) systems with Java technologies.\",\"sameAs\":[\"http:\\\/\\\/codebuild.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Cagdas-Basaraner\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java Annotations &amp; A Real World Spring Example - Java Code Geeks","description":"An \"annotation\" is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language","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\/2012\/01\/java-annotations-real-world-spring.html","og_locale":"en_US","og_type":"article","og_title":"Java Annotations &amp; A Real World Spring Example - Java Code Geeks","og_description":"An \"annotation\" is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language","og_url":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2012-01-13T16:32:00+00:00","article_modified_time":"2012-10-21T22:46:25+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","type":"image\/jpeg"}],"author":"Cagdas Basaraner","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Cagdas Basaraner","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html"},"author":{"name":"Cagdas Basaraner","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/e6c00eea674ce03d741da69f4109cf22"},"headline":"Java Annotations &amp; A Real World Spring Example","datePublished":"2012-01-13T16:32:00+00:00","dateModified":"2012-10-21T22:46:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html"},"wordCount":289,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","keywords":["Annotations"],"articleSection":["Core Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html","url":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html","name":"Java Annotations &amp; A Real World Spring Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","datePublished":"2012-01-13T16:32:00+00:00","dateModified":"2012-10-21T22:46:25+00:00","description":"An \"annotation\" is a type of programming language definition and used as a \u201cmarker\u201d. They can be thought as comment lines which programming language","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2012\/01\/java-annotations-real-world-spring.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":"Core Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/core-java"},{"@type":"ListItem","position":4,"name":"Java Annotations &amp; A Real World Spring Example"}]},{"@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\/e6c00eea674ce03d741da69f4109cf22","name":"Cagdas Basaraner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/953928d03c39ba2f43f685c234fc371907bb2d7ba654efd056bc4ab72dec102d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/953928d03c39ba2f43f685c234fc371907bb2d7ba654efd056bc4ab72dec102d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/953928d03c39ba2f43f685c234fc371907bb2d7ba654efd056bc4ab72dec102d?s=96&d=mm&r=g","caption":"Cagdas Basaraner"},"description":"Cagdas Basaraner is a software engineer graduated from Hacettepe University Computer Engineering department (Turkey), having 5 years professional experience. He is working on JEE web technologies, and also a former developer of information systems using Microsoft technologies and Command &amp; Control (C4I) systems with Java technologies.","sameAs":["http:\/\/codebuild.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Cagdas-Basaraner"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/833","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\/133"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/833\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/148"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}