{"id":416,"date":"2020-02-22T11:11:00","date_gmt":"2020-02-22T11:11:00","guid":{"rendered":"https:\/\/www.juniorjavadeveloper.pl\/?p=416"},"modified":"2023-12-10T18:35:51","modified_gmt":"2023-12-10T18:35:51","slug":"kiedy-sam-jezyk-java-to-za-malo-jak-nie-utonac-w-morzu-technologii-zwiazanych-z-jezykiem-java","status":"publish","type":"post","link":"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/02\/22\/kiedy-sam-jezyk-java-to-za-malo-jak-nie-utonac-w-morzu-technologii-zwiazanych-z-jezykiem-java\/","title":{"rendered":"How not to drown in the ocean of Java-related technologies? Libraries, frameworks, tools"},"content":{"rendered":"<p class=\"has-large-font-size wp-block-paragraph\">In this article, I will introduce the concept of libraries, how to use them, their various forms and present the most popular and most frequently used libraries.<\/p>\n\n\n    <style>\r\n        .wpj-jtoc.--jtoc-theme-basic-light.--jtoc-has-custom-styles {\r\n            --jtoc-numeration-suffix: \". \";\n--jtoc-numeration-color: #adadad;\n        }\r\n\r\n            <\/style>\r\n\r\n\r\n\r\n<div id=\"wpj-jtoc\" class=\"wpj-jtoc wpj-jtoc--main --jtoc-the-content --jtoc-theme-basic-light --jtoc-title-align-left --jtoc-toggle-icon --jtoc-toggle-position-right --jtoc-toggle-1 --jtoc-has-numeration --jtoc-has-custom-styles --jtoc-is-unfolded\" >\r\n\r\n    \r\n    <!-- TOC -->\r\n    <div class=\"wpj-jtoc--toc\">\r\n                                <div class=\"wpj-jtoc--header\">\r\n                <div class=\"wpj-jtoc--header-main\">\r\n                                        <div class=\"wpj-jtoc--title\">\r\n                        <span class=\"wpj-jtoc--title-label\">Table of Contents<\/span>\r\n                    <\/div>\r\n                                                                <div class=\"wpj-jtoc--toggle-wrap\">\r\n                                                                                                                    <div class=\"wpj-jtoc--toggle-box\">\r\n                                    <div class=\"wpj-jtoc--toggle\"><\/div>\r\n                                <\/div>\r\n                                                    <\/div>\r\n                                    <\/div>\r\n            <\/div>\r\n                            <div class=\"wpj-jtoc--body\">\r\n                        <nav class=\"wpj-jtoc--nav\">\r\n                <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#wstep\" title=\"Preface\" data-numeration=\"1\">Preface<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#roznice-miedzy-pojeciami\" title=\"Differences between concepts\" data-numeration=\"2\">Differences between concepts<\/a>\r\n                    <\/div> <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#biblioteka\" title=\"Library\" data-numeration=\"2.1\">Library<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#framework\" title=\"Framework\" data-numeration=\"2.2\">Framework<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#narzedzia\" title=\"Tools\" data-numeration=\"2.3\">Tools<\/a>\r\n                    <\/div> <\/li><\/ol><\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#przyklady\" title=\"Examples\" data-numeration=\"3\">Examples<\/a>\r\n                    <\/div> <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#biblioteka_1\" title=\"Library\" data-numeration=\"3.1\">Library<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h3\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"3\">\r\n                <a href=\"#framework_1\" title=\"Framework\" data-numeration=\"3.2\">Framework<\/a>\r\n                    <\/div> <\/li><\/ol><\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#jak-wybrac-biblioteke-framework\" title=\"How to choose a library or framework?\" data-numeration=\"4\">How to choose a library or framework?<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                <a href=\"#dependencies-czyli-zaleznosci\" title=\"Dependencies\" data-numeration=\"5\">Dependencies<\/a>\r\n                    <\/div> <\/li><\/ol>            <\/nav>\r\n                    <\/div>\r\n    <\/div>\r\n<\/div>\r\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"wstep\">Preface<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">Knowing from another article that <a aria-label=\"Java language alone is not enough (opens in a new tab)\" href=\"https:\/\/www.juniorjavadeveloper.pl\/2020\/01\/04\/czy- java-language-enough\/\" target=\"_blank\" rel=\"noreferrer noopener\">Java language alone is not enough<\/a>, this time we have to prepare for the multitude of tools, libraries, frameworks that are available for the Java language and which support the work of a Java programmer.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Nowadays, when a Java programmer writes application code, she uses other Java classes, which also use other Java classes. Dependencies are created between classes. More classes for a project are placed in libraries that can be used by other developers. <\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">It's hard to find code that doesn't consist of other classes, unless it is <a aria-label=\"Hello World! (opens in a new tab)\" href=\"https:\/\/www.juniorjavadeveloper.pl\/2020 \/01\/18\/first-code-in-java-in-intellij-step-by-croku\/\" target=\"_blank\" rel=\"noreferrer noopener\">Hello World!<\/a>. Even within our own application we use several of our own classes, if this is not the case, we are probably violating the principle of Single Responsibility with <a aria-label=\"SOLID (opens in a new tab)\" href=\"https:\/\/pl.wikipedia. org\/wiki\/SOLID_(Object_Programming)\" target=\"_blank\" rel=\"noreferrer noopener\">SOLID<\/a>.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">If we have more than one class in the project, we create a file from such a project <a aria-label=\"JAR (opens in a new tab)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/JAR_(file_format) \" target=\"_blank\" rel=\"noreferrer noopener\">JAR<\/a>, a library that will contain compiled and ready-made classes for use by other programmers. Most useful libraries can be downloaded from <a aria-label=\"Maven Repository (opens in a new tab)\" href=\"https:\/\/mvnrepository.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Maven Repository<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"roznice-miedzy-pojeciami\">Differences between concepts<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">Before I present the list of libraries and frameworks, I will explain <a href=\"https:\/\/pl.wikipedia.org\/wiki\/Framework\" target=\"_blank\" rel=\"noreferrer noopener\">difference between these concepts<\/a>. Both the library and the framework are added to the project as dependencies, by dependencies we mean a set of classes available in the form of a JAR file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"biblioteka\">Library<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Without going into technical details, a library is something we use, something we use in our project, it gives us a tool to solve a specific task, e.g. text operations. <\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"framework\">Framework<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">It is something that provides a template that we fill out and that uses our classes, manages them and provides a whole set of tools to support our task, e.g. creates objects for us, displays a graphical user interface.<\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"narzedzia\">Tools<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">So far I haven't mentioned anything about tools, I have only presented libraries and frameworks. Tools supporting the work of a Java programmer are in most cases separate applications that have their own user interface (graphical, textual), commands and commands. These applications are installed separately or as plug-ins, e.g. for the browser, IntelliJ IDEA <a rel=\"noreferrer noopener\" aria-label=\"IDE (opens in a new tab)\" href=\"https:\/\/pl.wikipedia.org \/wiki\/Zintegrowane_%9Programming_broadcast\" target=\"_blank\">IDE<\/a>. Tools to facilitate a developer's work:<br>\u2013 <a rel=\"noreferrer noopener\" aria-label=\"Postman (opens in a new tab)\" href=\"https:\/\/www.postman.com\/\" target=\"_blank\">Postman<\/a>,<br>\u2013 Web browser in <a rel=\"noreferrer noopener\" aria-label=\"developer mode (opens in a new tab)\" href=\"https:\/\/developer.mozilla.org\/ en-US\/docs\/Learn\/Common_questions\/What_are_browser_developer_tools\" target=\"_blank\">developer mode<\/a>,<br>\u2013 <a rel=\"noreferrer noopener\" aria-label=\"GitHub (opens in a new tab) \" href=\"https:\/\/github.com\/\" target=\"_blank\">GitHub<\/a> \u2013 remote git repository.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"przyklady\">Examples<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">I have given some examples of programming tools above. Below I will show you some examples of libraries and frameworks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"biblioteka_1\">Library<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">A library worth your attention is <a rel=\"noreferrer noopener\" aria-label=\"Lombok (opens in a new tab)\" href=\"https:\/\/projectlombok.org\/\" target=\"_blank\">Lombok<\/a>, which allows us to save time and effort in writing repetitive code for classes <a rel=\"noreferrer noopener\" aria-label=\"POJO (opens in a new tab)\" href=\"https:\/\/en.wikipedia.org\/wiki\/ Plain_old_Java_object\" target=\"_blank\">POJO<\/a>, automatically generates e.g. constructors, get\/set methods, toString() method for us. Libraries created by the foundation are very popular <a rel=\"noreferrer noopener\" aria-label=\"Apache (opens in a new tab)\" href=\"https:\/\/apache.org\/\" target=\"_blank\">Apache<\/a>, you can mention, among others, <a rel=\"noreferrer noopener\" aria-label=\"Apache Commons (opens in a new tab)\" href=\"http:\/\/commons.apache.org\/\" target=\"_blank\"> Apache Commons<\/a>. The <a href=\"http:\/\/modelmapper.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"ModelMapper (opens in a new tab)\">ModelMapper<\/a> library is also useful, which facilitates the process of mapping one class to another class.<\/p>\n\n\n\n<h3 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"framework_1\">Framework<\/h3>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph translation-block\">An example of a framework is <a rel=\"noreferrer noopener\" aria-label=\"JUnit (opens in a new tab)\" href=\"https:\/\/junit.org\/junit5\/\" target=\"_blank\">JUnit<\/a> which supports testing our code. This is the most popular framework for testing Java code, there are others such as <a rel=\"noreferrer noopener\" aria-label=\"Selenium (opens in a new tab)\" href=\"https:\/\/en. wikipedia.org\/wiki\/Selenium_(software)\" target=\"_blank\">Selenium<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"TestNG (opens in a new tab)\" href=\"https:\/\/en.wikipedia.org\/wiki\/TestNG\" target=\"_blank\">TestNG<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Mockito (opens in a new tab)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mockito\" target=\"_blank\">Mockito<\/a>. The most popular framework is Spring framework, the description of this framework goes beyond this article, please read the official documentation <a rel=\"noreferrer noopener\" aria-label=\"Spring Framework (opens in a new tab)\" href=\"https:\/\/spring.io\/\" target=\"_blank\">Spring Framework<\/a> and information at <a rel=\"noreferrer noopener\" aria-label=\"Wikipedia (opens in a new tab)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Spring_Framework\" target=\"_blank\">Wikipedia<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"jak-wybrac-biblioteke-framework\">How to choose a library or framework?<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Jak znale&#378;&#263; i wybra&#263; odpowiedni&#261; dla nas bibliotek&#281; lub framework? Po lekturze tego artyku&#322;u jasno i wyra&#378;nie wida&#263;, &#380;e nie &#322;atwo jest odnale&#378;&#263; si&#281; w g&#261;szczu dost&#281;pnych bibliotek i framework&rsquo;&oacute;w. Kiedy ja szukam biblioteki, to tak na prawd&#281; szukam rozwi&#261;zania jakiego&#347; problemu, a biblioteka pojawia si&#281; &ldquo;przy okazji&rdquo; przyk&#322;adu rozwi&#261;zania danego problemu. M&oacute;wi si&#281;, &#380;e w j&#281;zyku Java istnieje ju&#380; rozwi&#261;zanie danego problemu i w wi&#281;kszo&#347;ci przypadk&oacute;w takie rozwi&#261;zanie jest na tyle uog&oacute;lnione, &#380;e wyst&#281;puje w postaci biblioteki lub framework&rsquo;u.<\/p>\n\n\n\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"dependencies-czyli-zaleznosci\">Dependencies<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Na koniec przedstawi&#281; list&#281; zale&#380;no&#347;ci, bibliotek, kt&oacute;re mo&#380;emy doda&#263; do <a aria-label=\"&quot;startera&quot; aplikacji (otwiera si&#281; na nowej zak&#322;adce)\" href=\"https:\/\/start.spring.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">&ldquo;startera&rdquo; aplikacji<\/a> opartej na Spring Framework. Prosta aplikacja web (Spring MVC + Thymeleaf) z mo&#380;liwo&#347;ci&#261; utrwalania danych (Spring Data JPA). Dlaczego o tym pisz&#281;? Po dodaniu poni&#380;szych 4 zale&#380;no&#347;ci otrzymujemy oko&#322;o 90 bibliotek, z kt&oacute;rych te cztery dodane biblioteki korzystaj&#261; &ndash; prawdziwe morze zale&#380;no&#347;ci!<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">spring-boot-starter-web\nspring-boot-starter-thymeleaf\nspring-boot-starter-data-jpa\nspring-boot-starter-test<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Below are the previously mentioned dependencies for a simple application written using Spring Framework - Maven dependencies.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\t&lt;dependencies&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;\n\t\t&lt;\/dependency&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;spring-boot-starter-thymeleaf&lt;\/artifactId&gt;\n\t\t&lt;\/dependency&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;spring-boot-starter-data-jpa&lt;\/artifactId&gt;\n\t\t&lt;\/dependency&gt;\n\t\t&lt;dependency&gt;\n\t\t\t&lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n\t\t\t&lt;artifactId&gt;spring-boot-starter-test&lt;\/artifactId&gt;\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\n\t\t&lt;\/dependency&gt;\n\t&lt;\/dependencies&gt;<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"781\" src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-1024x781.png\" alt=\"Jak nie uton&#261;&#263; w morzu technologii zwi&#261;zanych z j&#281;zykiem Java? Biblioteki, Frameworki, narz&#281;dzia - Mentor Junior Java Developer\" class=\"wp-image-3869\" srcset=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-1024x781.png 1024w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-300x229.png 300w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-768x586.png 768w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-16x12.png 16w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-1179x900.png 1179w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-1000x763.png 1000w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-800x610.png 800w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-600x458.png 600w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer-400x305.png 400w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/2020-02-22_Jak-nie-utonac-w-morzu-technologii_Mentor-Junior-Java-Developer.png 1376w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">How not to drown in the sea of Java-related technologies? Libraries, frameworks, tools \u2013 Mentor Junior Java Developer<\/figcaption><\/figure>\n\n\n\n\n<p class=\"wp-block-paragraph\">Below are the previously mentioned dependencies for a simple application written using Spring Framework - Gradle dependencies.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dependencies {\n    implementation 'org.springframework.boot:spring-boot-starter-web'\n    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'\n    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'\n\n    implementation group: 'org.modelmapper', name: 'modelmapper', version: '2.3.5'\n    implementation group: 'org.projectlombok', name: 'lombok', version: '1.18.8'\n\n    testImplementation 'org.springframework.boot:spring-boot-starter-test'\n    testImplementation group: 'com.h2database', name: 'h2', version: '1.4.199'\n\n    testImplementation 'org.junit.jupiter:junit-jupiter-api'\n}<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Below are the dependencies for the libraries I mentioned in the examples above \u2013 Gradle dependencies.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dependencies {\n    implementation group: 'org.modelmapper', name: 'modelmapper', version: '2.3.5'\n    implementation group: 'org.projectlombok', name: 'lombok', version: '1.18.8'\n\n    testImplementation group: 'com.h2database', name: 'h2', version: '1.4.199'\n\n    testImplementation 'org.junit.jupiter:junit-jupiter-api'\n}<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-poradnik-dla-przysz-ych-junior-java-developer-039-w wp-block-embed-poradnik-dla-przysz-ych-junior-java-developer-039-w\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"S8rAAYeCX2\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/kontakt\/\">Contact<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&bdquo;Kontakt&rdquo; &mdash; Poradnik dla przysz&#322;ych Junior Java Developer&amp;apos;&oacute;w\" src=\"https:\/\/www.juniorjavadeveloper.pl\/kontakt\/embed\/#?secret=oXTfCdznHr#?secret=S8rAAYeCX2\" data-secret=\"S8rAAYeCX2\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-poradnik-dla-przysz-ych-junior-java-developer-039-w wp-block-embed-poradnik-dla-przysz-ych-junior-java-developer-039-w\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"zRltoerWGR\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/mentoring-rezerwuj-termin\/\">Mentoring - book an appointment<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&bdquo;Mentoring &ndash; rezerwuj termin&rdquo; &mdash; Poradnik dla przysz&#322;ych Junior Java Developer&amp;apos;&oacute;w\" src=\"https:\/\/www.juniorjavadeveloper.pl\/mentoring-rezerwuj-termin\/embed\/#?secret=J9bq4YnAqE#?secret=zRltoerWGR\" data-secret=\"zRltoerWGR\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>","protected":false},"excerpt":{"rendered":"<p>W tym artykule przybli\u017c\u0119 samo poj\u0119cie bibliotek, sposoby wykorzystania, ich r\u00f3\u017cne formy oraz przedstawi\u0119 najbardziej popularne, jak r\u00f3wnie\u017c najcz\u0119\u015bciej wykorzystywane biblioteki. Wst\u0119p Wiedz\u0105c ju\u017c z innego artyku\u0142u, \u017ce sam j\u0119zyk Java, to za ma\u0142o, tym razem musimy przygotowa\u0107 si\u0119 na ogrom narz\u0119dzi, bibliotek, framework&#8217;\u00f3w, kt\u00f3re s\u0105 dost\u0119pne dla j\u0119zyka Java i kt\u00f3re wspieraj\u0105 prac\u0119 programisty, [&hellip;]<\/p>","protected":false},"author":1,"featured_media":439,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_ppp_document_settings_meta":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[6,2,7],"tags":[],"class_list":["post-416","post","type-post","status-publish","format-standard","has-post-thumbnail","category-felieton","category-poczatkujacy","category-poradnik"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/02\/kiedy-sam-jezyk-java-nie-wystarczy_library-rr.jpg","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/comments?post=416"}],"version-history":[{"count":26,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/416\/revisions"}],"predecessor-version":[{"id":3873,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/416\/revisions\/3873"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media\/439"}],"wp:attachment":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media?parent=416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/categories?post=416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/tags?post=416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}