12/08/2018, 16:55

CDI là gì? Thực hiện DI và AOP với CDI

Nguồn : https://stackjava.com/cdi/cdi-la-gi.html CDI (Contexts and Dependency Injection) là một chuẩn Java, cung cấp ngữ cảnh cho việc thực hiện Dependency Injection (DI). (Nếu bạn hơi mơ hồ thì tạm hiểu nôm na CDI nó giống như 1 thư viện giúp chúng ta thực hiện Dependency Injection và AOP – ...

Nguồn : https://stackjava.com/cdi/cdi-la-gi.html

CDI (Contexts and Dependency Injection) là một chuẩn Java, cung cấp ngữ cảnh cho việc thực hiện Dependency Injection (DI).

(Nếu bạn hơi mơ hồ thì tạm hiểu nôm na CDI nó giống như 1 thư viện giúp chúng ta thực hiện Dependency Injection và AOP – giống như việc tạo các bean ở trong spring, jsf)

CDI cung cấp các lợi ích sau:

  • Thực hiện Inject các thành phần (Sử dụng annotation @Injection, tương đương với @Autowired trong Spring hay @ManagedProperty trong JSF)
  • Khả năng thực hiện Interceptor (AOP)
  • Định nghĩa các web scope (ngoài các scope tiêu chuẩn như request scope, session scope, appcliation scope)

CDI bean là bean được quản lý bởi CDI container (giống như các spring bean bị quản lý bởi spring container). Bean ở đây là các class Java mà chúng ta có thể lấy từ trong container. Để tạo 1 bean có rất nhiều cách như khai báo trong file config, sử dụng annotation…

Dưới đây là các ví dụ chi tiết về bean, các inject, interceptor với CDI:

  • Code ví dụ CDI trong Java, @Named, @Inject, @Default, @Alternative
  • Java CDI – Sử dụng @Alternative để chọn một thay thế, Annotation @Produces
  • Java CDI Inject nhiều kiểu vào cùng một bean, annotation @Qualifier
  • Code ví dụ Annotation @PostConstruct, @PreDestroy, @Any trong Java CDI
  • Code ví dụ Interceptor trong CDI Java, annotation @Interceptor

Done! Thanks các bạn đã theo dõi bài viết!

Nguồn : https://stackjava.com/cdi/cdi-la-gi.html

0