Annotation trong Spring

Annotation trong Spring

Với mỗi class tạo ra bạn đều phải khai báo trong Spring config để sử dụng bean, vậy bạn sẽ hỏi có cách nào tự động quét tìm tất cả các thành phần mà mình cần tìm mà không phải khai báo.Đó là cách sử dụng các Annotation

Trong các ứng dụng có kết nối database ta thường sử dụng @Component, @Repository, @Service, @Controller để đánh dấu các lớp Dao, Service,.. của ứng dụng

Auto Components Scan Annotation Types
Kể từ Spring v2.5 cho phép ta sử dụng 4 loại auto scan component như sau:
+@Component : dùng để scan components
+@Repository: dùng để đánh dấu các DAO của lớp persistence ()
+@Service: dùng để đánh dấu các Service của lớp business
+@Controller: dùng để đánh dấu các Controller lớp presentation

Ta có thể sử dụng @Component thay thế cho 3 annotation còn lại là @Repository, @Service và @Controller. Spring sẽ cho phép scan tất cả với @Component, nó hoạt động tốt nhưng sẽ không tối ưu, nó sẽ không catch exception liên quan tới DAO thay vì Repository nếu chúng ta sử dụng @Service hoặc @Component

Để sử dụng được annotations, ta thêm dòng sau trong file application-context.xm
<context:annotation-config /> <context:component-scan base-package="...specify your package name..." />

@Autowired: Tự động liên kết các Bean lại với nhau
@Transactional: để dùng được thêm vào file config của spring:<tx:annotation-driven/>
@Scope: mặc định trong Spring, hầu hết scope phổ biến cho các autodetected components là singleton (singleton: Với mổi bean container chỉ tao duy nhất một đối tượng), để thay đổi phạm vi ta
sử dụng @scope
.....
Tham khảo thêm: http://www.techferry.com/articles/spring-annotations.html



No comments:

Post a Comment