Spring @Bean

Odpowiedz Nowy wątek
2016-07-07 17:34
StudentKrakow
0

Witam
uczę się springa i kojarzę jak działa np autowired ale mam problem z @Bean
chodzi mi o użycie w spring 4 możemy zrobić klasę zawierającą konfiguracje
i tam zamieścić definicje beanów właśnie oznaczając metody adnotacją @Bean.
Rozumiem, że wtedy spring utworzy mi takiego beana jak tam podam i doda mi go to kontextu także będę mógł z niego korzystać w aplikacji. To z czym mam problem to jakie beany w ten sposób powinienem definiować.
Wydaje mi się, że chodzi o beany z jakichś biblotek z których chcę korzystać i jeśli tak to w pliku konfiguracyjnym do tych beanów dodaje odpowiednią konfigurację -> parametryzuję te beany z bibliotek pod moją aplikację.
czy dobrze to rozumiem?

Pozostało 580 znaków

2016-07-07 17:41
0

Tak.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-07-07 17:51
0

Nie wiem czy dobrze zrozumiałem o co Ci chodzi więc wklejam przykład:


@Bean(name = "dataSource")
    public DataSource dataSource(){
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("org.postgresql.Driver");
        dataSource.setUrl("jdbc:postgresql://localhost/expenses_manager");
        dataSource.setUsername("java");
        dataSource.setPassword("...");
        return dataSource;
    }

Jest to Bean DataSource który służy do konfiguracji połączenia z bazą danych. Nie jest to klasa stworzona przeze mnie więc tylko ją dostosowuję.
Klasy które sam tworze oznaczam jako @Repository/@Service/@RestController czy @Component - one wtedy są automatycznie dodawane do contextu Springa podczas skanowania


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

2016-07-10 01:05
0

Pomyśl o @Bean jako o factory pattern. To coś co pozwala powiedzieć kontenerowi DI w jaki sposób ma stworzyć obiekt, który będziesz wstrzykiwał (@Autowired / @Inject).
https://spring.io/blog/2011/08/09/what-s-a-factorybean

Po co? Łatwiej pisać testy dla takiej fabryki niż dla konstruktora (mniej zależności między klasami).

edytowany 1x, ostatnio: margor90, 2016-07-10 01:07

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0