Сообщения

MS Lesson15: Locking mechanism & Transaction propogation

1. Optimistic Read = Optimistic Optimistic Read zamani row-a lock qoyulmur version ile idare olunur. Optimistic o demekdir ki, problem olmayacaq ve ya cox az olacaq.  package guru.springframework.cruddemo.service.impl; import guru.springframework.cruddemo.entity.Account; import guru.springframework.cruddemo.repository.AccountRepository; import guru.springframework.cruddemo.service.AccountService; import lombok. RequiredArgsConstructor ; import lombok.extern.slf4j. Slf4j ; import org.springframework.stereotype. Service ; import org.springframework.transaction.annotation. Transactional ; import org.springframework.transaction.support.TransactionSynchronizationManager; @Service @Slf4j @RequiredArgsConstructor public class AccountServiceImpl implements AccountService { private final AccountRepository accountRepository ; @Override @Transactional public void transfer (Integer amount) { System. out .println(Thread. currentThread ().getName()); System. out ....

MS Lesson14: @Transactional

1. Arxa planda proxy nece implement olunur package guru.springframework.cruddemo.service.impl; import guru.springframework.cruddemo.entity.Account; import guru.springframework.cruddemo.repository.AccountRepository; import guru.springframework.cruddemo.service.AccountService; import lombok. RequiredArgsConstructor ; import lombok.extern.slf4j. Slf4j ; import org.springframework.stereotype. Service ; import org.springframework.transaction.annotation. Transactional ; @Service @Slf4j @RequiredArgsConstructor public class AccountServiceImpl implements AccountService { private final AccountRepository accountRepository ; @Override @Transactional public void transfer (Integer amount) { Account fromAccount = accountRepository .findById( 1L ).get(); Account toAccount = accountRepository .findById( 2L ).get(); fromAccount.setAmount(fromAccount.getAmount() - amount); toAccount.setAmount(toAccount.getAmount() + amount); } } arxa planda yaranan kla...

MS Lesson13: Proxy Design Pattern, ACID & Transaction

Proxy Design Pattern Proxy - it provides an object that acts as substitute for a real service object used by a client. A proxy receives client requests, does some work and then passes the request to a original object.  package guru.springframework.cruddemo.proxy; public interface DailySession { void attendLesson (); } package guru.springframework.cruddemo.proxy; import lombok. AllArgsConstructor ; import lombok. Data ; import lombok. NoArgsConstructor ; import java.util.Date; @Data @NoArgsConstructor @AllArgsConstructor public class Attendance { private Date date ; private boolean isPresent ; } package guru.springframework.cruddemo.proxy; import lombok. Data ; @Data public class Student implements DailySession { private final Attendance attendance ; public Student (Attendance attendance) { this . attendance = attendance; } @Override public void attendLesson () { System. out .println( "Attending the session..." ); } } package...