Tới nội dung chính
caltalys.dev

#Proxy

6 bài viết.

Đồ hình trừu tượng của tập 2.2 trong Quyển Một
Lớp Trung Gian Vô Hình - tập 8

Hai method, hai @Transactional - mà chỉ một transaction để chết chung

@Transactional không nói mở transaction, nó nói method này cần chạy trong một transaction. Quyền quyết định nằm ở cái vỏ, và cái vỏ thò tay vào túi của thread.

Đồ hình trừu tượng của tập 2.1 trong Quyển Một
Lớp Trung Gian Vô Hình - tập 7

Ném exception mà dữ liệu vẫn được commit

Cái vỏ có đó, lời gọi có đi qua nó, mà vẫn không rollback: bảng luật mặc định của Spring chỉ rollback với unchecked exception.

Đồ hình trừu tượng của tập 1.4 trong Quyển Một
Lớp Trung Gian Vô Hình - tập 6

@Cacheable không cache - rồi khi cache được, nó trả nhầm đồ của người khác

Cache cũng chỉ là một cái Map, và khoá mặc định của nó chỉ gồm tham số. Hai method khác nhau cùng cacheNames là cùng một ô.

Đồ hình trừu tượng của tập 1.3 trong Quyển Một
Lớp Trung Gian Vô Hình - tập 5

@Async của tôi chạy tuần tự như thường

Thiếu một dòng bật tính năng thì annotation chỉ còn là lời khai không ai đọc. Và khi nó chạy được rồi, exception lại chết ở một thread khác.

Đồ hình trừu tượng của tập 1.2 trong Quyển Một
Lớp Trung Gian Vô Hình - tập 4

@Transactional gọi từ chính class mình lại không chạy

Lời gọi từ trong chính class không đi ra ngoài cái vỏ, nên không ai kịp làm gì cả. Bài này giải thích vì sao đừng bao giờ tin this.

Đồ hình trừu tượng của tập 1.1 trong Quyển Một
Lớp Trung Gian Vô Hình - tập 3

getClass() của tôi in ra `$$SpringCGLIB$$`, tôi có làm hỏng gì không?

Vật được trao không phải vật bạn tưởng: vì sao Spring Boot đúc proxy bằng CGLIB kể cả khi đã có interface, và vì sao method final làm @Transactional bốc hơi.