1. Wstęp do CDI
2. Beans
3. Zarządzanie beanami
4. Scopes and context
5. Events
6. Interceptors
7. Decorator
bean możemy oznaczyć klasę:
  1. @ApplicationScoped
  2. public class MyBean {
  3. }
lub producenta
  1. @SessionScoped
  2. public MyClass {
  3.         @Produces
  4.         @RequestScoped
  5.         public UserBean user;
  6. }
  7.  
Mamy następujące adnotacje definiujące zasięg klasy obiektu:
@Dependent - domyślna adnotacja, bean nowy tworzony przy każdym wstrzyknięciu
Jest to tak zwany pseudo zasięg, ponieważ nie ma zasięgu pomiędzy beanami,
dlatego że jak używamy @Inject tworzony jest zawsze nowy bean.
@RequestScoped - bean nowy tworzony przy każdym żądaniu
@ConversationScoped - możliwe jest stworzenie konwersacji i określenie kiedy się zaczyna ".begin()" i kiedy kończy ".end()"
Bean wyamga implementacji interface-u Serializable.
@SessionScoped - bean jeden dla sesji, każda sesja http ma swój jeden bean
Bean wyamga implementacji interface-u Serializable.
@ApplicationScoped - istnieje tylko jeden bean przez całe trwanie aplikacji
@Vetoed - adnotacja używana jeżeli nie chcemy aby klasa była beanem - definiowana dla klasy i pakietu.
  1. @Vetoed
  2. package pl.edu.java.example;
  3.  
Adnotacja @PostConstruct (javax.annotation.PostConstruct) dla metod w bean-ie, wywołanie cyklu życia gdy jest tworzone.
Czyli gdy bean jest tworzony zostaje ta metoda wywołana.
  1. @PostConstruct
  2. private void init() {
  3.         System.out.println("Obiekt stworzony");
  4. }
  5.  
Adnotacja @PreDestroy (javax.annotation.PreDestroy) dla metod w bean-ie. Wywołanie cyklu życia gdy jest niszczone.
  1. @PreDestroy
  2. private void destroy() {
  3.         System.out.println("Obiekt stworzony");
  4. }
  5.  
created by cv.java.org.pl © 2023 All Rights Reserved.