Spring Kurulumundan Başlayarak, Spring IOC ve Dependency Injection, Hibernate, Maven ve Spring Boot Konularına Giriş Yapıyoruz.

Overview

Spring Tutorial for Beginners

GitHub last commit GitHub Repo stars GitHub followers

File Directory


Apache Tomcat

Apache Tomcat, Apache Yazılım Vakfı tarafından geliştirilmiş açık kaynak bir Java Servlet Container uygulamasıdır.

Kurulum

  1. https://tomcat.apache.org sitesine gidin. Sol tarafta "Download" altındaki kısımında, son sürüme tıklayın.
  2. Çıkan ekranda işletim sisteminize ve sürümünüze en uygun seçeneği seçin ve indirme işlemi başlayacaktır.

  3. Uygulamamızın kurulumuna devam ederken, aşağıda görülen ekranda "Full" kurulumu seçmeyi unutmayın!

  4. "Configuration" ekranında Port numaralarımızı aşağıdaki gibi veriyoruz. User Name alanına kullanıcı adımızı "admin" olarak, Password alanına şifremizi "12345" olarak belirliyoruz.

  5. "Java Virtual Machine" ekranında gereken JDK dosyamızın dizinini veriyoruz. Burada JDK 11 sürümünü de kullanabilirsiniz!

  6. Programımızın kurulacağı dosya dizinini de aşağıdaki gibi veriyoruz!

  7. Kurulum bittikten sonra "localhost:8080" adresine gittiğinizde karşınıza aşağıdaki web site çıkacktır. Karşınıza bu ekran geliyorsa kurulumunuz başarıyla tamamlanmıştır!


Apache Tomcat - Eclipse Bağlantısı

Kurulum

  1. Eclipse IDE Programımızı açıyoruz.
  2. File > New > Other kısmına tıklıyoruz!

  3. Karşımıza gelen ekranda "server" yazıp gelen "Server" seçeneğine tıklayıp, Next diyoruz!

  4. Tekrardan karşımıza çıkan ekranda arama kutucuğuna "apache" yazıyoruz ve son sürümünü (10) kurduğumuz için "Tomcat v10.0 Server" seceneğine tıklayıp Next diyoruz!

  5. Bu ekranda Tomcat'i bilgisayarımıza kurduğumuz dizini giriyoruz!

  6. Finish ile kurulumu bitirebiliriz.
  7. Eğer Eclipse IDE uygulamanızda Alt barda "Servers" yok ise bunu aşağıdaki adımları izleyerek ekleyebilirsiniz.
  8. Window > Show View > Other kısmına tıklıyoruz!

  9. Buradan Server > Servers altında "Servers" seceneğine tıklayıp, Open butonuna basıyoruz!


Spring Paketlerinin İndirilmesi ve Projeye Entegrasyonu

Kurulum

  1. https://repo.spring.io/release/org/springframework/spring/ Bu adresten sayfanın en altından en güncel spring sürümünü seçiyoruz!

  2. Tıkladığımızda karşımıza gelen ekranda "-dist.zip" isimli dosyayı indiriyoruz!

  3. İndirilen dosyayı klasörden çıkarıldığında "libs" klasörü içindeki tüm jar dosyalarını kopyalıyoruz!

  4. Eclipse uygulamamızı açıp istediğiniz dizinde "springIntro" adından java projesi oluşturuyoruz.

  5. Projemize sağ tıklayıp New > Folder kısmına gidiyoruz!

  6. Karşımıza gelen ekranda "libs" olarak belirlediğimiz dosyamızın adını giriyoruz!

  7. Tekrar projemize sağ tıklayıp en alt kısımda bulunan "Properties" alanına tıklıyoruz!

  8. Karşımıza çıkan bu ekranda "Libraries" sekmesine gelip "Classpath"e bir kez tıklıyoruz. Yanda bulunan "Add JARs..." alanına tıklıyoruz!

  9. Gelen ekranda açtığımız "libs" klasörünü bulup tüm Jar dosyalarını seçiyoruz! (Shift ile ilk jar dosyasına tıklayıp ardından son jar dosyasına tıklarsanız tüm Jar dosyalarını tek seferde seçebilirsiniz!)

  10. "OK" tuşuna bastıktan sonra "Apply and Close" ile ekranı kapatıp, projemizi başarıyla hazırlamış oluyoruz!

Hibernate

Hibernate, veritabanınızdaki tablolar ile classlar ile eşleştirip, class üzerinden veritabanındaki nesneleri ilişkilendirerek "insert", "update", "delete" ve "select" yapabilmemizi sağlıyor. JDBC ile yapılan tüm veritabanı sorgularını tamamen hibernate ile "generate" olarak yapılıyor.

Kurulum

  1. https://hibernate.org/orm/releases/5.4/ adresine gidin ve görseldeki butona tıklayın! Açılan "SourceForge" penceresinde indirme otomatik olarak başlayacaktır.

  2. Eğer bilgisayarınızda MySQL yoksa https://dev.mysql.com/downloads/windows/installer/8.0.html buradan indirmeniz, gerekiyor! Kurulum için detaylı bir kurulum videosu izlemenizi öneririm!

  3. Eclipse IDE'mize gelip "hibernateDemo" adında proje oluşturduktan sonra projeye sağ tıklayıp New > Folder!a tıklıyoruz.

  4. "libs" adında bir klasör oluşturuyoruz!

  5. İndirdiğimiz hibernate klasörünü RAR'dan çıkardıktan sonra görseldeki uzantıya gidip JAR dosyalarnı kopyalıyoruz. Sonrasında projemizde oluşturduğumuz "libs" içine JAR dosyalarını yapıştırıyoruz!

  6. https://disk.yandex.com.tr/d/O5rimXX5yG0Shw Burada bulunan MySQL bağlantı JAR dosyasını da "libs" klasörü içine atıyoruz.

  7. "libs" klasörü içinde bulunan dosyaları tanımlamak için, projemize sağ tıklayıp "properties" kısmına giriyoruz!

  8. Çıkan ekranda gördüğünüz adımları takip ederek "ADD Jars..." butonuna tıklıyoruz.

  9. Son olarak "hibernateDemo" içindeki JAR dosyalarını ekleyip, Apply ve sonrasına Apply&Close ile ekranı kapatıyoruz!

Hibernate Proje Entegrasyonu

Kurulum

  1. https://disk.yandex.com.tr/d/Hv0ybf55Y8Mh-A adresine gidin! "hibernate.cfg.xml" dosyasını indirin.
  2. "src" dosyası içine indirdiğiniz dosyayı yapıştırın!
  3. Dosya içinde "connection.url" kısmını veritabanı adınıza göre veriryoruz, yine kullanıcı adınızı ve şifrenizi veritabanınıza göre verin!


Maven

Büyük projelerde birçok Jar dosyaları vs. birçok kütüphaneden yararlanıyoruz. Proje devam ettikçe bu paket sayısı artarken, paketlere gelen güncellemelerde takip edilmesi gerekiyor.

  • Jar dosyaları yönetilebilir.
  • Proje şablonları ile standart proje yönetimlerini yapabilirsiniz.
  • Versiyon takip sistemi de sunuyor.

Biz projemize birşey eklediğimizde veya istediğimizde bunu maven ile yapıyoruz. Bu durumda maven bizim diğer kütüphaneler ile haberleşmeyi sağlıyor.

Hibernate, Spring gibi firmalar yaptıkları güncellemeleri Maven'a yükler, projeler de bu şekilde rahatlıkla güncellemeleri takip edebilir.

Kurulum

  1. Öncelikle Help > Install New Software ile maven'ı projemize eklememiz gerekiyor!

  2. Çıkan ekranda Work with kısmına http://download.eclipse.org/technology/m2e/releases/ bu linki ekliyoruz ve "Add" butonua basıyoruz. "Group items by category" tikini kaldırıyoruz ve ekranda gördüğünüz "m2e" paketlerine tik koyuyoruz! Next diyip kurulumunu bitiriyoruz.

  3. Maven projesi oluşturmak için öncelikle File > New > Other'a tıklıyoruz!

  4. Gelen ekranda arama kısmına "maven" yazıyoruz ve "Maven Poject" kısmında tıklıyoruz. Next butonuna tıklayıp devam ediyoruz.

  5. Bu ekranda çalışma alanımızı istiyorsanız değiştirebilirsiniz ancak genelde deafult olarak devam edilir!

  6. Filter kısmında "maven-archetype-quickstart" yazıp alt tarafta işaretli olan paketi seçip Next diyip devam ediyoruz!

  7. Bu ekranda "Group Id" şirketimizin adı, "Artifact Id" ise oluşturacağımız projenin adıdır. Örnek olarak aşağıdaki gibi oluşturup Finish ile projemizi tamamlıyoruz!

  8. Oluşturduğumuz dosya içinde pom.xml dosyasında görüldü yere "1." yazısından sonra kullandığımız JDK sürümünü yazıyoruz. Örnek olarak ben JDK 16 sürümünü kullanıyorum.

  9. Projemiz başarıyla oluşturuldu!

Maven Projesine Kütüphane Entegrasyonu

  1. https://mvnrepository.com adresine gidiyoruz. Bu sitede eklemek projenizde kullanmak istediğiniz kütüphanenizin "maven" içinde mevcut mu kontrol edebilirsiniz! Maven için olan dosyaları yine "dependency" kodlarıyla projenize rahatlıkla ekleyebilirsiniz! Arama kısmına projemize eklemek istediğimiz "hibernate" kütüphanesini yazıyoruz.

  2. Gelen ekranda en son final sürümünü seçebilirsiniz!

  3. İstediğiniz sürüme tıkladığınızda karşınıza "maven" dependency kod blokları gelecektir. Bu kod bloğunu kopyalıyoruz.

  4. pom.xml içine kod bloğumuzu aşağıdaki gibi eklememiz yeterlidir!

  5. Dilediğiniz tüm kütüphaneler için bu adımları uygulayabilirsiniz!

Spring Boot

Spring Boot : Giriş

Kurulum

  1. https://start.spring.io adresine gidiyoruz. "Dependencies" kısmına Spring Web ekliyoruz. Buraya ekleyeceğimiz dosyaları sonradan pom.xml dosyamıza https://mvnrepository.com sitesinden istediğimiz kütüphanenin dependency kodlarını bularak ekleyebiliriz. Sonrasında "Group" ile şirket adımızı, "Artifact" ile projemizin adını veriyoruz. Java kısmı karşısında JDK sürümümüzü seçiyoruz. GENERATE butonuna tıklayın ve inen dosyası RAR içinden çıkarın!

  2. Eclipse içinde File > Import kısmına tıklıyoruz!

  3. Import ekranımızda karşımıza gelen arama kutucuğuna "maven" yazıp "Existing Maven Projects" seçiyoruz. Bu şekilde var olan bir maven projesini projemize eklemeyi amaçlıyoruz! Next diyoruz!

  4. Bu ekranda "Browse" seçeneğine tıklıyoruz! İndirdiğimiz ve RAR'dan çıkardığımız dosyamıza girip karşımıza "src" klasörünü görünceye kadar ilerliyoruz. OK butonnuna basın ve Projects altında "pom.xml" kısmı görüyorsanız doğru bir şekilde ilerlediğiniz anlamına geliyor!

  5. Finish ile projemizi eklemiş oluyoruz!

Spring Boot : Spring REST

Java ile Front-end(Angular, React, Vue, Mobil Uygulama) teknolojileriyle kullanıcıya buluşturulurken arka tarafta işin back-end teknolojisine Rest API denir. Burada Controller sınıfı Spring boot işlemlerinde @RestController sınıfımıza "Controller" özelliği kazandırır.

Spring Boot : Katmanlı Mimari

Data Access: Veri erişim katmanımızdır. Bu katmanda sadece ver erişim işlemleri yapılır. Temel JDBC, Spring Data, Hibernate kodları buraya yazılır. İsimlendirmelerinde DAL veya DAO kısaltmaları kullanılır.

Business: İş kurallarının yazıldığı katmandır. Mesela ehliyet alacak biri direksiyon, sınavdan vs. gerekli notu almış mı diye kontrol ettiğimiz if'lerin olduğu katmandır. İsimlendirmelerde Service ile kullanılır.

UI: Kullanıcı arayüzümüzdür. Burası Swing, Angular, Mobile ile kullanılır.

Tüm bu katmanlar birbiriyle Interface aracılığıyla haberleşir. Haberleşme Data Access ile Business ve Business ile UI arasında olur. Data Access ile UI arasında bir haberleşme olamaz çünkü kullanıcı yaptığı bir işlem direkt olarak veritabanına eklenmesi mümkün değildir. Kullanıcı UI ile yaptığı değişiklikleri Business katmanı sorgulamasını, uygunluğunu kontrol eder.

Kurulum

  1. Bu kısımda tarayıcı üzerinden projemizdeki ekleme, güncelleme, silme işlemleri için https://www.postman.com/downloads/ ekranından "Postman" uygulamasını indirmeniz gerekmektedir!
  2. "Port is already in use" hatası aldığınızda application.property dosyası içinden yaptığımız gibi port numarasını değiştirebilirsiniz!
  3. Postman uygulamamıza giriş yapıyoruz. File > New > HTTP Request içine giriyoruz. Yeni koleksiyon oluşturuyoruz ve "Request name" kısmına bir isim veriyoruz!
  4. http://localhost:8082/api/cities adresini GET ile yazıyoruz. Bu sayede tüm şehirlerimizi veritabanımızdan çekebiliyoruz. İsterseniz dosya formatını JSON olarak çekebilirsiniz! "Status: 200 OK" uyarısı işlemin başarıyla gerçekleştiğini gösterir!

  5. http://localhost:8082/api/cities/4094 adresine yine GET içinde yazıp SEND butonuna tıklıyoruz! Görüldüğü gibi projemizdeki tek bir şehri alma fonksiyonumuz çalıştırıyor!

  6. http://localhost:8082/api/add linkini POST içinde yazdığımızda Body > row kısmına girip istediğimiz özelliklere sahip şehrimizi giriyoruz! ID kısmını vermiyoruz bu şekilde GeneratedValue özelliği sayesinde bize ID kısmı otomaotik şekilde üretiliyor!

  7. http://localhost:8082/api/update linkini yine POST içinde yazıyoruz ve bu sefer güncellemek istediğimiz şehrin ID'sini veriyoruz bu şekilde verilen ID'nin olduğu şehrin tüm özellikleri yeniden değiştiriliyor!

  8. Burada "Port is already in use" hatası aldığımızında portumuzu 8083'e taşıyoruz! http://localhost:8083/api/delete linkini POST içinde Body > raw içine JSON formatında yazıyoruz burada girdiğimiz ID'ye sahip şehir siliniyor!

Umarım Faydalı Olmuştur, Çok teşekkür ederim!

Sosyal Medya Hesaplarım

LINKEDIN

YOUTUBE

GITHUB

MEDIUM

You might also like...

Um sistema de hospital feito em Spring Boot, contendo alguns CRUD's, e utilizando algumas famosas dependências, como o Hibernate. Vale destacar a interface inspirada no jogo Minecraft.

Um sistema de hospital feito em Spring Boot, contendo alguns CRUD's, e utilizando algumas famosas dependências, como o Hibernate. Vale destacar a interface inspirada no jogo Minecraft.

Introdução ✏ Esse projeto é uma atividade da disciplina de Design, Arquitetura e Construção de Software [DACS]. O objetivo do projeto é simular um sis

Nov 6, 2022

循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

Jan 6, 2023

This is simple project to show how to create a basic API using Java 11 + Maven + Spring Boot + PostgrSQL + Flyway.

This is simple project to show how to create a basic API using Java 11 + Maven + Spring Boot + PostgrSQL + Flyway.

Dec 10, 2022

Spring Boot Rest API unit test with Junit 5, Mockito, Maven

Spring Boot Rest API unit testing with Junit 5, Mockito, Maven Apply Spring Boot @WebMvcTest for Rest Controller Unit Test with JUnit 5 and Mockito. F

Dec 22, 2022

Spring-boot project using open-api, docker, maven, REST

library-service spring-boot project using open-api, docker, maven, REST I used docker to run the project, as well as open-api to generate basic GET an

Nov 27, 2022

A lightweight, mixin like injection lib using ASM

ClassTransform A lightweight, mixin like injection lib using ASM. The usage is like Mixins. You can almost copy-paste mixins code and it works. Why? I

Dec 22, 2022

Zero-Dependency RFC 8252 OAuth 2.0 Authorization Flow

Tiny OAuth2 Client This is a minimal zero-dependency implementation of the RFC 8252 OAuth 2.0 for Native Apps, relying on Loopback Interface Redirecti

Jun 17, 2022

Dynamically filters JPA entities with a simple query syntax. Provides JPA/Hibernate predicates and Spring Data specifications.

Spring Filter You need a way to dynamically filter entities without any effort? Just add me to your pom.xml. Your API will gain a full featured search

Dec 13, 2022

This repository contains source code examples to support my course Spring Data JPA and Hibernate Beginner to Guru

Spring Data JPA - Spring Data JPA This repository contains source code examples to support my course Spring Data JPA and Hibernate Beginner to Guru Co

Aug 24, 2022
Comments
  • Bump junit from 4.11 to 4.13.1 in /4 - mavenIntro/intro

    Bump junit from 4.11 to 4.13.1 in /4 - mavenIntro/intro

    Bumps junit from 4.11 to 4.13.1.

    Release notes

    Sourced from junit's releases.

    JUnit 4.13.1

    Please refer to the release notes for details.

    JUnit 4.13

    Please refer to the release notes for details.

    JUnit 4.13 RC 2

    Please refer to the release notes for details.

    JUnit 4.13 RC 1

    Please refer to the release notes for details.

    JUnit 4.13 Beta 3

    Please refer to the release notes for details.

    JUnit 4.13 Beta 2

    Please refer to the release notes for details.

    JUnit 4.13 Beta 1

    Please refer to the release notes for details.

    JUnit 4.12

    Please refer to the release notes for details.

    JUnit 4.12 Beta 3

    Please refer to the release notes for details.

    JUnit 4.12 Beta 2

    No release notes provided.

    JUnit 4.12 Beta 1

    No release notes provided.

    Commits
    • 1b683f4 [maven-release-plugin] prepare release r4.13.1
    • ce6ce3a Draft 4.13.1 release notes
    • c29dd82 Change version to 4.13.1-SNAPSHOT
    • 1d17486 Add a link to assertThrows in exception testing
    • 543905d Use separate line for annotation in Javadoc
    • 510e906 Add sub headlines to class Javadoc
    • 610155b Merge pull request from GHSA-269g-pwp5-87pp
    • b6cfd1e Explicitly wrap float parameter for consistency (#1671)
    • a5d205c Fix GitHub link in FAQ (#1672)
    • 3a5c6b4 Deprecated since jdk9 replacing constructor instance of Double and Float (#1660)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
Owner
İbrahim Can Erdoğan
Curious and Productive Someone About Android, Machine and Deep Learning and Many Other
İbrahim Can Erdoğan
JavaCampDay5Homework: E-ticaret sisteminde sisteme kayıt ve sisteme giriş için gerekli gereksinim ve kabul kriterlerini sağlayan Java diliyle yazılmış bir projedir.

User Login&Register JavaCampDay5Homework Kullanıcı bilgileri kontrolü yapıldı. Kullanıcı kaydı yapıldı. Kullanıcı girişi yapıldı. Google + Abc servisl

Zeyneb Eda YILMAZ 14 Apr 27, 2022
A simple quarkus app with hibernate as ORM, used to show the features of Hibernate Search

beer-manager-hibernate-search Project This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, ple

Sedona Solutions 3 Jan 6, 2022
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。

Spring Boot Projects 该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的前

十三 4.5k Dec 30, 2022
The Spring Boot Sample App on K8S has been implemented using GKE K8S Cluster, Spring Boot, Maven, and Docker.

gke-springboot-sampleapp ?? The Spring Boot Sample App on K8S has been implemented using GKE K8S Cluster, Spring Boot, Maven, and Docker. Usage To be

KYEONGMIN CHO 1 Feb 1, 2022
Spring JPA Many To Many example with Hibernate and Spring Boot CRUD Rest API - ManyToMany annotation

Spring JPA Many To Many example with Hibernate and Spring Boot CRUD Rest API - ManyToMany annotation

null 17 Dec 28, 2022
hibernate redis 二级缓存使用 spring boot redis 配置

hibernate-redisson-spring-boot-starter 介绍 使用 Redisson 作为 hibernate redis 二级缓存提供器,redisson-hibernate-53(hibernate-version) 无法使用 spring boot 配置文件创建的 org

null 4 Jul 3, 2022
Spring Boot, Hibernate, JpaRepository, RESTful services & PostgreSQL.

HRMS-Project Human Resources Management System Back End application with Java, Spring Boot, Hibernate, JpaRepository, RESTful services & PostgreSQL. S

Hikmet Tutuncu 9 Aug 23, 2022
Multi-Tenant Spring Boot Application with separate databases using Hibernate and H2.

Multi-Tenant Spring Boot Application A Spring Boot application that utilises a multi-tenancy architecture by providing multiple databases, one for eac

Alex Gschnitzer 15 May 9, 2022
The goal of the project is to create a web application using Java EE and database (PostgreSQL) without connecting a modern technology stack like spring boot and hibernate

About The Project SignIn page SignUp page Profile page The goal of the project is to create a web application using Java EE and database (PostgreSQL)

Islam Khabibullin 2 Mar 23, 2022
A code sharing platform built using spring boot, hibernate and JPA as ORM with PostgreSQL which also follows a RESTful architecture.

Snap-Snippet A code sharing platform built using spring boot, hibernate and JPA as ORM with PostgreSQL which also follows a RESTful architecture. Tech

Adnan Hossain 7 Nov 29, 2022