Kurs Java

Rozmowa kwalifikacyjna - Pytania i odp.

Pytania ze Springa stanowią ważną część rozmów kwalifikacyjnych na stanowisko Java Developera. Oczywiście nie mówimy tutaj o pracy na poziomie Juniora (choć i tutaj coraz częściej pracodawcy liczą na choćby podstawową znajomość frameworka), ale starając się o pracę na każdej z wyższych pozycji, wymagana jest wiedza na temat tego frameworka.

Istnieje też druga strona medalu. Czasem nawet programując na co dzień w Springu, możemy średnio wypaść na rozmowie kwalifikacyjnej. Wynika to z tego, że w pracy często wykorzystujemy pewien ograniczony zakres sprawdzonych rozwiązań, a wiele innych, istotnych kwestii, najzwyczajniej umyka naszej uwadze. A nieraz są to kwestie cenne dla rekrutera z firmy, do której właśnie aplikujemy.
Appa Notka. Nasze pytania i odpowiedzi są cennym materiałem dla osób przygotowujących się do certyfikatu ze Springa. Wiele z tych pytań znajduje się w ścieżkach certyfikacyjnych różnych akademii.

Pytania i odpowiedzi

Z wymienionych powyżej powodów opracowaliśmy dla Was pytania i odpowiedzi, których można spodziewać się podczas rozmowy kwalifikacyjnej na temat Springa. Powstały one zarówno na bazie naszych własnych doświadczeń, jak i wielu rozmów przeprowadzonych w ramach wywiadu środowiskowego.

Pytanie 1

W jaki sposób zaimplementować transakcyjność w Springu?
Odpowiedź:
W tym celu należy:
  • Aktywować wspracie dla transakcji poprzez dodanie do klasy konfiguracyjnej adnotacji @EnableTransactionManagement
  • @Configuration
    @EnableTransactionManagement
    public class JPAConfig {
    
        ...
    }
    
  • Zadeklarować menedżera transakcji (transaction manager) w postaci beana typu PlatformTransactionManager. W tym celu tworzymy obiekt klasy na przykład JpaTransactionManager w metodzie zwracającej interfejs PlatformTransactionManager, którą oznaczamy adnotacją @Bean. Menedżer transakcji wymaga fabryki LocalContainerEntity..., a ta korzysta ze źródła danych (data source). Możemy także podać dodatkowe parametry konfiguracyjne źródła danych.
    @Configuration
    @EnableTransactionManagement
    public class JPAConfig {
    
        @Bean
        public PlatformTransactionManager transactionManager(){
            JpaTransactionManager transactionManager = new JpaTransactionManager();
            transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
            return transactionManager;
        }
        
        @Bean
        public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
            LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
            em.setDataSource(dataSource());
            em.setPackagesToScan(new String[] { "com.javappa.domain" });
            
            JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
            em.setJpaVendorAdapter(vendorAdapter);
            em.setJpaProperties(additionalProperties());
            
            return em;
        }
        
        @Bean
        public DataSource dataSource() {
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/javappadb");
            dataSource.setUsername( "kowalskij" );
            dataSource.setPassword( "pass12!" );
            return dataSource;
        }
        
        Properties additionalProperties() {
            Properties properties = new Properties();
            properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
            properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
               
            return properties;
        }
    
    }
    
  • Dodać do wybranych metod serwisu lub całej klasy serwisu adnotację @Transactional
  • W przypadku Spring Boot-a wystarczy podpiąć zależności do spring-data (np. spring-boot-starter-data-jpa) lub spring-tx oraz użyć adnotacji @Transactional. Tak więc jest to dużo prostsze niż w przypadku Springa bez Spring Boota.

Pytanie 2

Jakie adnotacje Springa...
Pełny materiał ze wszystkimi źródłami kodu jest dostępny po wykupieniu pakietu. Zapraszamy!
Jeśli zakupiłeś materiał zaloguj się tutaj, aby uzyskać dostęp.

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE