Bài viết Câu hỏi About RongvangIT
profile Pic
0
0

Đăng ngày:

  59 Lượt xem

Sự khác nhau giữa @Component, @Service, @Repository và @Controller

JavaSpring

Spring chú thích “ @Component, @Service, @Repository, @Controller “ hoạt động cơ bản giống nhau và tất cả đều đăng ký lớp được chú thích trong container DI của Spring như một bean. Trong việc sử dụng, ở tầng Controller của Spring MVC, bạn sử dụng @Controller, ở tầng Service sử dụng @Service, tầng dữ liệu sử dụng @Repository, và nếu không rơi vào trường hợp nào cả, bạn có thể sử dụng @Component.

@Controller

Sử dụng cho lớp ở tầng Controller của Spring MVC. Controller chủ yếu đảm nhiệm các vai trò sau:

  • Kiểm soát chuyển động giữa các trang
  • Gọi dịch vụ ở tầng Service (thực hiện các xử lý chính)
@Controller
@RequestMapping("findProduct")
public class FindProductController {

    @Inject
    FindProductService findProductService;

    @RequestMapping(value="list")
    public String list(Model model) {
        Collection<Product> products = findProductService.findAll();
        model.addAttribute("products", products);
        return "product/list";
    }
}

@Service

Sử dụng cho lớp ở tầng Service của Spring MVC (nơi triển khai logic kinh doanh, v.v.). Service cung cấp xử lý kinh doanh.

@Service
public class FindProductServiceImp implements FindProductService {

    @Inject
    FindProductRepository findProductRepository;

    public Todo findAll() {

        Collection<Product> products = findProductRepository.findAll();

        if (products == null) {
             // Xử lý lỗi
             ...
        }
        return products;
    }
}

@Repository

Sử dụng cho lớp ở tầng dữ liệu của Spring MVC (lớp thực hiện truy cập cơ sở dữ liệu như DAO, v.v.).

@Repository
public class FindProductRepositoryImpl implements FindProductRepository {

    private Collection<Product> products;

    @Override
    public Collection<Product> findAll() {
        return products;
    }
}

@Component

Sử dụng không chỉ trong Spring MVC mà còn cho bất kỳ lớp nào bạn muốn đăng ký như một bean trong container DI của Spring.

@Component
public class checkComponentImp implements checkComponent{

    @Override
    public boolean check(BLogicParam param) {
        ...
    }
}
dev_pro_it
Đang làm IT tại Japan

Bình luận

Bài viết chưa có bình luận. Hãy trở thành người bình luận đầu tiên!
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Bắt đầu ngay với RồngVàngIT - nền tảng chia sẻ kiến thức lập trình tuyệt vời cho kỹ sư Việt Nam!

Hãy đăng nhập để sử dụng hàng loạt các chức năng tuyệt vời của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic