Menu Bar

Kata Mutiara

"Keberhasilan merupakan tetesan dari jeri-payah perjuangan, luka, pengorbanan dan hal-hal yang mengejutkan. Kegagalan merupakan tetesan dari kemalasan, kebekuan, kelemahan, kehinaan dan kerendahan"

ANIMASI TULISAN BERJALAN

Tuesday, February 24, 2026

20 Fundamental Spring Boot yang wajib diketahui Pemula Programmer spesialis Java Developer

 

Apa itu Spring Boot

Spring Boot adalah framework berbasis Spring Framework yang mempermudah pembuatan aplikasi Java production-ready dengan:

✅ konfigurasi minimal
✅ embedded server
✅ auto-configuration
✅ siap untuk microservices & cloud


1. Konsep Inti: Dependency Injection (DI) & IoC

🎯 Tujuan

Mengurangi coupling antar class.

Tanpa DI

UserService service = new UserService();

Dengan DI

@Service
public class UserService {}


@Autowired
UserService service;

Spring container akan membuat & mengelola object.

✔ loose coupling
✔ mudah testing
✔ mudah maintain


2. Auto Configuration

Spring Boot otomatis mengkonfigurasi komponen berdasarkan dependency.

Contoh:

Jika ada dependency:

spring-boot-starter-data-jpa

Spring otomatis setup:

✔ DataSource
✔ JPA
✔ Transaction manager

➡ developer tidak perlu konfigurasi manual.


3. Starter Dependencies

Starter = paket dependency siap pakai.

Contoh:

  • spring-boot-starter-web → REST API

  • spring-boot-starter-data-jpa → database

  • spring-boot-starter-security → authentication

  • spring-boot-starter-validation → validation

👉 mempercepat setup project.


4. Embedded Server

Spring Boot menjalankan server internal:

✔ Tomcat (default)
✔ Jetty
✔ Undertow

Menjalankan aplikasi cukup:

java -jar app.jar


5. Struktur Layered Architecture (Best Practice)

Struktur umum:

controller
service
repository
model/entity
dto
config
exception

📌 Controller (API layer)

@RestController
@RequestMapping("/users")
public class UserController {}


📌 Service (business logic)

@Service
public class UserService {}


📌 Repository (data access)

@Repository
public interface UserRepository extends JpaRepository<User, Long> {}

✔ separation of concerns
✔ scalable architecture


 6. REST API Development (Spring MVC)

Digunakan untuk membangun API.

@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
    return userService.getUser(id);
}

Annotation penting:

  • @RestController
  • @GetMapping
  • @PostMapping
  • @RequestBody
  • @PathVariable

7. Configuration Management

Konfigurasi di:

application.yml

Contoh: YAML

server:
    port: 8081

spring:
    datasource:
    url: jdbc:postgresql://localhost:5432/app


Profile Environment

application-dev.yml
application-prod.yml

Aktifkan:

spring.profiles.active=dev

✔ mendukung multi environment.


8. Spring Data JPA (ORM)

Mempermudah akses database.

public interface UserRepository extends JpaRepository<User, Long> {

    List<User> findByName(String name);

}

Tanpa SQL manual.


9. Entity Mapping

@Entity
public class User {
   @Id
   @GeneratedValue
   private Long id;
}

Mapping object → tabel database.


 10.Transaction Management

Digunakan untuk menjaga konsistensi data.

@Transactional
public void transfer() {
// debit
// credit
}

✔ rollback otomatis jika error
✔ penting untuk transaksi finansial

11. Validation

public class UserRequest {

@NotNull
private String name;
}

@PostMapping
public void create(@Valid @RequestBody UserRequest req){}

✔ validasi otomatis request.

12. Exception Handling Global

@RestControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(Exception.class)
public ResponseEntity<?> handle(Exception e){
return ResponseEntity.badRequest().body(e.getMessage());
}
}

✔ response error konsisten
✔ mudah debugging

13. Logging

Menggunakan SLF4J + Logback.

private static final Logger log LoggerFactory.getLogger(UserService.class);
log.info("User created");

✔ monitoring
✔ debugging production

14. Security (Spring Security + JWT)

Digunakan untuk:

✔ authentication
✔ authorization
✔ proteksi API

Biasanya digunakan bersama JWT token.


15. Caching

Menggunakan Redis / in-memory cache.

@Cacheable("users")
public User find(Long id){}

✔ meningkatkan performa

16. Actuator (Monitoring & Health Check)

Dependency:

spring-boot-starter-actuator

Endpoint:

/actuator/health
/actuator/metrics

✔ monitoring aplikasi production.

17. Spring Boot Profiles & Environment

Memisahkan konfigurasi:

✔ dev
✔ staging
✔ production

Sangat penting untuk deployment.


 18. Build & Packaging

Gunakan:

✔ Maven
✔ Gradle

Build:

mvn clean package

Hasil:

app.jar

19. Testing

Unit Test

@SpringBootTest
class UserServiceTest {}

Tools umum:

✔ JUnit
✔ Mockito
✔ Testcontainers

20. Microservices Ready Features

Spring Boot mendukung:

✔ REST communication
✔ service discovery
✔ distributed config
✔ circuit breaker
✔ container deployment

Flow Request di Spring Boot

1️⃣ Client request API
2️⃣ Controller menerima request
3️⃣ Service menjalankan business logic
4️⃣ Repository akses database
5️⃣ Response dikirim kembali


 Kenapa Spring Boot Populer di Enterprise?

✅ cepat dikembangkan
✅ standar industri
✅ scalable & cloud ready
✅ ecosystem besar
✅ production ready

Kesimpulan

Fundamental Spring Boot yang wajib dikuasai:

✔ Dependency Injection & IoC
✔ Auto Configuration & Starter
✔ REST API & MVC
✔ JPA & Transaction
✔ Exception handling & validation
✔ Security & caching
✔ Monitoring & deployment

No comments:

Post a Comment

iklan

iklan