Сообщения

MS Lesson ?: Spring Security

  1. Ilkin olaraq sade Spring Security-ye cavab veren klas budur: /* * Copyright 2012-present the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.boot.security.autoconfigure; import java.util.ArrayList; import java.util.List; import java.util.UUID; import org.springframework.boot.context.properties. ConfigurationProperties ; import org.springframework.util.StringUtils; /** * Configuration properties for...

MS Lesson12: n + 1 problem

1. LazyInitializationException package guru.springframework.cruddemo.entity; import jakarta.persistence.CascadeType; import jakarta.persistence. Column ; import jakarta.persistence. Entity ; import jakarta.persistence.FetchType; import jakarta.persistence. GeneratedValue ; import jakarta.persistence.GenerationType; import jakarta.persistence. Id ; import jakarta.persistence. OneToMany ; import jakarta.persistence. OneToOne ; import jakarta.persistence. Table ; import lombok. AllArgsConstructor ; import lombok. Builder ; import lombok. Getter ; import lombok. NoArgsConstructor ; import lombok. Setter ; import lombok. ToString ; import java.util.ArrayList; import java.util.List; @Getter @Setter @Entity @Builder @ToString @NoArgsConstructor @AllArgsConstructor @Table (name = "persons" ) public class Person { @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private Long id ; @Column (nullable = false ) private String name ; @Column (nullable = fa...

MS Lesson11: Entity Manager, Entity relations

Изображение
0. Ön səhnə: DB, connection, transaction (Step-by-step) Təsəvvür et ki, DB = kitabxana, application = kitab gətirən maşın, connection = bu kitabxanaya açılan yol, transaction = “bir dəfəyə gətirmə qaydası”. Connection  açılır. Transaction  başlayır: “bu aralıqdakı iş ya hamısı olur, ya da heç biri”. Əsas qayda: commit  = kitablar həqiqətən rəfə gedir. rollback  = gətirdin, amma “heç nə olmamış kimi” geri qaytarırsan. 1.  EntityManagerFactory  nədir? (Step 1) EntityManagerFactory  = “mətbəx maşınlarının fabrikası”. Bir dənə olur (tipik). Sənə hər transaction üçün uyğun  yeni  EntityManager  yaratmağa  kömək edir. Yəni: EMF = fabrika EM = mətbəx (işin içində baş verir) 2.  EntityManager  nədir? (Step 2) EntityManager  = “iş vərəqi / kassa”. Sən JPA əmrlərini verəndə (find/persist/merge/remove/refresh/detach) “bu vərəq” içində baş verir. Bu vərəqin ən önəmli hissəsi var: 3. Persistence Context nədir? (Step 3 – ən kritik)...

MS Lesson10: JPA and EntityManagerFactory

  EntityManagerFactory və EntityManager  JPA / Hibernate dünyasında iki əsas oyunçu var: EntityManagerFactory  – “zavod” EntityManager  – “işçi” 1. Böyük şəkil: ApplicationContext → EntityManagerFactory → EntityManager → Connection → Database Spring Boot tətbiqində axın təxmini belədir: ApplicationContext │ ├── EntityManagerFactory (1 ədəd, singleton, bahalı obyekt) │ │ │ └── EntityManager (çox ədəd, qısa ömürlü “session” obyektləri) │ │ │ └── Connection (HikariCP-dən götürülən DB connection) │ │ │ └── PostgreSQL session │ └── Digər bean-lar (Service, Repository, Controller və s.) Yadda saxla: EntityManagerFactory  – tətbiq boyu  1 dəfə  yaradılır (ApplicationContext kimi). EntityManager  – hər  transaction / iş  üçün ayrıca yaradılıb bağlanan “session” kimidir. Connection  – Hikari hovuzundan götürülür, DB ...