Sobes.tech
Junior

Java'da nasıl bir web uygulaması oluşturulur?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da bir web uygulaması, Java Enterprise Edition (Java EE) veya Spring ekosistemindeki frameworkler ve teknolojiler kullanılarak oluşturulabilir.

Ana adımlar ve bileşenler:

  1. Teknoloji/framework seçimi:

    • Java EE: Servlet/JSP, JSF, JAX-RS (RESTful), JPA gibi spesifikasyonları kullanır. Bir uygulama sunucusu gerektirir (Tomcat, Jetty, WildFly, GlassFish).
    • Spring Framework: Geniş modüller setiyle popüler bir framework (Spring MVC, Spring Boot, Spring Data). Spring Boot, gömülü bir sunucu ile bağımsız uygulamalar oluşturmayı sağlar.
  2. Proje yapısı:

    • Maven veya Gradle gibi bir yapı sistemi kullanılır.
    • Tipik web uygulaması yapısı (WAR dosyası):
      ├── src
      │   ├── main
      │   │   ├── java       // Java kodu (servletler, denetleyiciler, servisler)
      │   │   ├── resources  // Kaynaklar (konfigürasyon dosyaları, özellikler)
      │   │   └── webapp     // Web kaynakları (HTML, CSS, JS, JSP, WEB-INF)
      │   └── test           // Testler
      └── pom.xml veya build.gradle // Yapı dosyası
      
    • WEB-INF içinde web.xml (Java EE dağıtım betiği) ve sınıflar/kütüphaneler bulunur.
  3. Ön yüz (Frontend):

    • HTML, CSS, JavaScript.
    • Sunucu tarafı render teknolojileri (Server-Side Rendering - SSR): JSP, Thymeleaf, Freemarker.
    • Ön yüz frameworkleri (Client-Side Rendering - CSR): React, Angular, Vue.js (bu durumda backend Java REST API sağlar).
  4. Arka uç (Backend):

    • Servletler: Java EE'nin temel teknolojisi olup HTTP isteklerini işler. İstekleri işler ve yanıtlar oluşturur.
    • JSP (JavaServer Pages): Java kodunu HTML içine gömmenize olanak tanır. Sıklıkla servletlerle (denetleyici olarak servlet, görünüm olarak JSP) birlikte kullanılır.
    • Frameworkler:
      • Spring MVC: Model-View-Controller (MVC) desenini uygular. İstekleri işleyen denetleyiciler, veriler için modeller ve görüntüleme için görünüm kullanır.
      • Spring Boot: Spring uygulamalarının yapılandırmasını ve dağıtımını kolaylaştırır. Gömülü sunucu, otomatik yapılandırma içerir.
      • JSF (JavaServer Faces): Java EE için bileşen tabanlı UI frameworkü.
      • JAX-RS: RESTful web servisleri oluşturmak için Java EE spesifikasyonu.
  5. Veri erişimi:

    • JDBC (Java Database Connectivity): Veritabanlarıyla düşük seviyeli API.
    • ORM (Object-Relational Mapping) frameworkleri: JPA (Hibernate, EclipseLink), Spring Data JDBC/JPA. Java nesneleri kullanarak veritabanlarıyla çalışmayı sağlar.
  6. Dağıtım:

    • WAR dosyası: Java EE uygulama sunucusuna (Tomcat, Jetty vb.) paketlenir ve dağıtılır.
    • Bağımsız JAR (Spring Boot): Gömülü sunucu içerir ve normal bir JAR gibi çalıştırılabilir.

Basit bir Spring Boot (REST API) kullanarak web uygulaması oluşturma örneği:

  1. Spring Initializr (start.spring.io) kullanarak temel proje oluşturma ve bağımlılıkları ekleme (Spring Web ve Spring Data JPA).
  2. HTTP isteklerini işleyen denetleyici sınıf oluşturma:
    package com.example.demo.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController // REST denetleyici olduğunu belirten açıklama
    public class HelloWorldController {
    
        @GetMapping("/hello") // /hello yoluna GET istekleri
        public String sayHello(@RequestParam(value = "name", defaultValue = "World") String name) {
            // Opsiyonel parametre name alır
            return String.format("Hello, %s!", name); // Yanıt dizesi oluşturur
        }
    }
    
  3. Veritabanı ile çalışma gerekiyorsa, JPA kullanarak bir varlık sınıfı ve depo oluşturma.
  4. application.properties veya application.yml dosyasında veri kaynağını yapılandırma.
  5. Spring Boot ana sınıfını çalıştırma.

Bu yaklaşım, iş mantığına odaklanarak hızlıca fonksiyonel bir web uygulaması oluşturmayı sağlar.