Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Spis treści

Wstęp

System PlusWorkflow posiada kontekst aplikacji, dzięki któremu możemy za pomocą adnotacji sterować procesem tworzenia obiektów, oraz korzystać z dodatkowych funkcjonalności umożliwiających np. zarządzanie transakcjami.

Utworzenie własnej klasy zarządzanej przez kontekst aplikacji

W celu skorzystania z możliwości jakie daje kontekst aplikacji musimy utworzyć klasę, która zostanie załadowana do kontekstu i pobrać w odpowiedni sposób jej instancję.

Sposób 1 - adnotacja @Component

Adnotacja @Component jest najbardziej ogólna powoduje, że nasza klasa zostanie przeskanowana przez system i podczas pobierania instancji zostaną załadowane odpowiednie obiekty. Tą adnotacją są oznaczona jest np. klasa ServiceFactory. Przykład:

Klasa z adnotacją @Component
@Component
public class CustomComponent
{
    @Autowired
    private SessionFactory sf;
 
	@Autowired
	private UserService us;
	
	private String customField;
 
	public User getUser(){
		return us.getByUserId("jkowalski");
	}
}

Powyższy kod spowoduje, że wywołanie metody getUser nie rzuci wyjątku NullPointerException, lecz zwróci użytkownika. Dzieje się tak z powodu adnotacji @Autowired, która wyszukuje odpowiednią implementację interfejsu i podstawia ją pod obiekt.

Sposób 2 - adnotacja @Service

Adnotacja @Service ma dokładnie takie samo działanie jak @Component jednak zaleca się jej stosowanie w przypadku klas usług(Service) służących do zarządzania obiektami biznesowymi. Tą adnotacją są oznaczone klasy implementujące interfejsy usług np. UserService, PositionService itd.

Opis użycia adnotacji @Service:

Sposób 3 - adnotacja @Repository

@Repository różni się od pozostałych tym, że konwertuje wyjątki rzucone podczas błędu wykonania operacji na bazie danych na standardowy wyjątek z rodziny DataAccessException. Dzięki temu niezależnie od rodzaju bazy danych, sterownika, czy biblioteki jakiej używamy zawsze otrzymamy taki sam wyjątek. Tą adnotacją są oznaczone klasy implementujące interfejsy usług np. UserDao, PositionDao itd.

Opis użycia adnotacji @Repository:

Sposób 4 - adnotacja @Controller

Najbardziej rozbudowany mechanizm pozwalający na definiowanie serwletów w bardzo prosty sposób.

Opis tworzenia serwletu za pomocą adnotacji @Controller:

 

Uwaga

Aby klasa mogła zostać zeskanowana musi znajdować się w drzewie pakietu com.suncode.pwfl


 

 

 

  • No labels