Mỗi tài liệu Spring 3, The IoC container, chú thích @Named
là tiêu chuẩn tương đương với chú thích @Component
.Chú thích @Nam trong Spring MVC
Kể từ @Repository
, @Service
, và @Controller
đều @Component
, tôi đã cố gắng để sử dụng @Named
cho tất cả chúng trong ứng dụng Spring MVC của tôi. Nó hoạt động tốt. Nhưng tôi thấy sự thay thế của @Controller
dường như có một lỗi. Trong lớp trình điều khiển, ban đầu, nó là
@Controller
public class MyController{
...
}
Nó hoạt động tốt. Khi tôi thay đổi @Controller
để @Named
@Named
public class MyController{
...
}
Nó thất bại với lỗi:
"No mapping found for HTTP request with URI ...".
Nhưng nếu tôi thêm @RequestMapping
đến lớp như sau
@Named
@RequestMapping
public class MyController{
...
}
Nó sẽ làm việc như mong đợi.
Đối với @Repository
và @Service
, tôi có thể chỉ cần thay thế chúng bằng @Named
mà không có vấn đề gì. Nhưng việc thay thế @Controller
cần thêm công việc. Có điều gì tôi thiếu trong cấu hình không?
Liệu nó có nghĩa là tôi có thể yên tâm sử dụng '@ Named' để thay thế '@ Component' thành tiêm bean chung, nhưng tôi vẫn cần sử dụng' @ Repository', '@ Service' và' @ Controller' trong các tính năng cụ thể của Spring MVC? –
@dino Bạn được chào đón. Cân nhắc chấp nhận câu trả lời này trừ khi bạn muốn đợi thêm câu trả lời với các chi tiết khác. –