Ở đâu đó tôi đọc Spring cung cấp sự tiện lợi về cấu hình. Nhưng Spring folks đang mang lại rất nhiều thay đổi về cấu hình, đến nỗi tôi thực sự bối rối khi sử dụng cấu hình xml hoặc chú thích.
Tôi muốn bất cứ ai đề xuất một phương pháp chắc chắn hoặc quy tắc ngón tay cái trong việc sử dụng xml và chú thích.
Các ví dụ tại SO để chỉ ra rằng nhiều người mới bắt đầu như tôi đang bị lẫn lộn về cấu hình.
-
Tôi dường như không nắm bắt được chức năng đằng sau
<context:annotation-config>
và<context:component-scan>
.Từ những gì tôi đã đọc, họ dường như xử lý các chú thích khác nhau (@Required, @Autowired, v.v so với @Component, @Rep repository, @Service, v.v.) nhưng cũng từ những gì tôi đã đọc, họ đăng ký các lớp xử lý bài bean tương tự.
Để làm tôi bối rối hơn nữa, có một
annotation-config
thuộc tính trên<context:component-scan>
... -
Tôi vẫn có thẻ quét thành phần:
<context:component-scan base-package="com.mycompany.maventestwebapp" />
nhưng tôi cũng có một thẻ khác (trông giống như có nhiệm vụ tương tự), thẻ này:
<annotation-driven />
Sự khác biệt giữa hai thẻ này là gì? Một điều "lạ" khác là ví dụ trước (không sử dụng thẻ điều khiển chú thích) rất giống với dự án được tạo bởi STS bằng dự án Spring MVC Template nhưng nếu tôi xóa thẻ điều khiển chú thích khỏi cấu hình của nó nộp dự án không chạy và đưa ra lỗi sau: Trạng thái HTTP 404 - ...
Spring 3.2 không còn cần cglib để ủy quyền, nhưng các phiên bản thấp hơn sử dụng cglib. Một trích dẫn từ blog Springsource
Để tạo ra các proxy như vậy, Spring sử dụng thư viện của bên thứ ba có tên là cglib. Thật không may, dự án này không hoạt động nữa. Trong Spring 3.2, rất có khả năng Spring sẽ sử dụng Javassist thay vì theo mặc định.
Những điều này có đủ để gợi ý rằng Spring là sự nhầm lẫn về cấu hình?