Khi lập trình web trên Spring MVC để phân quyền truy cập cho websites đơn giản chúng ta sử dụng:
- session trực tiếp trong controller trong từng request.
- sử dụng filter để đơn giản hoá việc áp dụng session.
- chuyên nghiệp hơn thì sử dụng thư viện Spring Security.
Trong bài viết này sẽ đề cập đến cách thứ 2 nhưng áp dụng thêm kiến thức về Java Annotation để việc sử dụng chuyên nghiệp như Spring Security (trên khía cạnh tối giản code khi triển khai trên từng request).
Với cách làm này hoàn toàn có thể nâng cấp thành một thư viện áp dụng cho nhiều dự án khác nhau.
Read More...
Những người phát triển phần mềm như chúng ta hiểu rõ rằng để có thể tích hợp được 1 hệ thống đầy đủ các loại thành phần chạy thống suốt với nhau là 1 điều không hề dễ dàng. Để các hệ thống IT làm việc và giao tiếp được với nhau, chúng ta cần xây dựng giao thức và nó sẽ làm tiêu tốn khá nhiều thời gian của bạn.
Lý do đó, người ta đưa ra khái niệm chuẩn Enterprise Integration Patterns, giới thiệu, mô tả và hướng dẫn xử lý các vấn đề thường gặp trong việc tích hợp hệ thống. Tuy nhiên, để tuân theo EIP cũng không hề dễ dàng. Chúng ta có một cách khác để tuân theo chuẩn EIP là sử dụng framework tích hợp Apache Camel, với mục tiêu chính là làm cho việc tích hợp này dễ dàng hơn. Camel cung cấp rất nhiều component cho chúng ta sử dụng và sử dụng khái niệm route để thực hiện việc định tuyến luồng dữ liệu khi tích hợp các thành phần lại với nhau. Chúng ta sẽ tìm hiểu dần dần các khái niệm và cách thức sử dụng nó sau đây.
Read More...
Khi làm việc với các project thì việc kết nối DB là không tránh khỏi. Có nhiều cách để app có thể giao tiếp vs DB và cũng tùy thuộc và dạng app mà bạn làm việc. Với JEE, bạn có nhiều cách như Spring Data JPA, Hibernate. Nổi tiếng và thông dụng nhất vẫn là Hibernate, tuy nhiên nếu bạn thích một kiểu giao tiếp mới DB ngoài Hibernate thì MyBatis là 1 lựa chọn không tồi.
Read More...
Khi làm việc với các dự án lớn liên quan đến các hệ thống thời gian thực, việc theo dõi và báo cáo tình trạng của hệ thống là vô cùng quan trọng. Việc theo dõi và gửi các thông số cho quản trị viên nắm được tình hình hệ thống tốt nhất mà không cần can thiệp và phân tích log trên server.
Phải xác định rằng, thành phần theo dõi và gửi báo cáo sẽ hoạt động như là một module độc lập tách rời khỏi hệ thống. Chúng ta có 2 cách:
- Cung cấp các service để hệ thống chính ghi lại các thông số trong quá trình hoạt động. (Cách này khi implement thì sẽ thay đổi cấu trúc module chính nếu thay đổi cơ chế theo dõi từ module monitor).
- Thông qua công nghệ Spring AOP, cho phép module monitor tự gắn kết và module chính mà không làm thay đổi cấu trúc của nó bằng cách lắng nghe theo class hoặc bắt các luồng dữ liệu được xử lý trong module đó.
Vì đây là hướng dẫn ban đầu nên mình chỉ đơn giản làm theo cách 1.
Bên cạnh việc theo dõi, chúng ta sẽ có các job cài đặt sẵn cho mục đích báo cáo như hằng ngày, hằng tuần…
Read More...