Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 37a08e26

Přidáno uživatelem stepanekp před asi 2 roky(ů)

#10237 Vytvoření konfiguračních souborů pro obě databáze.

Zobrazit rozdíly:

src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/AuthDbConfig.java
1
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.config;
2

  
3
import javax.persistence.EntityManagerFactory;
4
import javax.sql.DataSource;
5

  
6
import org.springframework.beans.factory.annotation.Qualifier;
7
import org.springframework.boot.context.properties.ConfigurationProperties;
8
import org.springframework.boot.jdbc.DataSourceBuilder;
9
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
10
import org.springframework.context.annotation.Bean;
11
import org.springframework.context.annotation.Configuration;
12
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
13
import org.springframework.orm.jpa.JpaTransactionManager;
14
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
15
import org.springframework.transaction.PlatformTransactionManager;
16
import org.springframework.transaction.annotation.EnableTransactionManagement;
17

  
18
@Configuration
19
@EnableTransactionManagement
20
@EnableJpaRepositories(
21
        entityManagerFactoryRef = "secondaryEntityManagerFactory",
22
        transactionManagerRef = "secondaryTransactionManager",
23
        basePackages = { "cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository" }
24
)
25
public class AuthDbConfig {
26

  
27
    @Bean(name="secondaryDataSource")
28
    @ConfigurationProperties(prefix="spring.second-datasource")
29
    public DataSource secondaryDataSource() {
30
        return DataSourceBuilder.create().build();
31
    }
32

  
33
    @Bean(name = "secondaryEntityManagerFactory")
34
    public LocalContainerEntityManagerFactoryBean secondaryEntityManagerFactory(EntityManagerFactoryBuilder builder,
35
                                                                                @Qualifier("secondaryDataSource") DataSource secondaryDataSource) {
36
        return builder
37
                .dataSource(secondaryDataSource)
38
                .packages("cz.zcu.fav.kiv.antipatterndetectionapp.v2.model")
39
                .build();
40
    }
41

  
42
    @Bean(name = "secondaryTransactionManager")
43
    public PlatformTransactionManager secondaryTransactionManager(
44
            @Qualifier("secondaryEntityManagerFactory") EntityManagerFactory secondaryEntityManagerFactory) {
45
        return new JpaTransactionManager(secondaryEntityManagerFactory);
46
    }
47
}
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/ProjectsDbConfig.java
1
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.config;
2

  
3
import org.springframework.beans.factory.annotation.Qualifier;
4
import org.springframework.boot.context.properties.ConfigurationProperties;
5
import org.springframework.boot.jdbc.DataSourceBuilder;
6
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
7
import org.springframework.context.annotation.Bean;
8
import org.springframework.context.annotation.Configuration;
9
import org.springframework.context.annotation.Primary;
10
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
11
import org.springframework.orm.jpa.JpaTransactionManager;
12
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
13
import org.springframework.transaction.PlatformTransactionManager;
14
import org.springframework.transaction.annotation.EnableTransactionManagement;
15

  
16
import javax.persistence.EntityManagerFactory;
17
import javax.sql.DataSource;
18

  
19
@Configuration
20
@EnableTransactionManagement
21
@EnableJpaRepositories(
22
        entityManagerFactoryRef = "primaryEntityManagerFactory",
23
        transactionManagerRef = "primaryTransactionManager",
24
        basePackages = {
25
                "cz.zcu.fav.kiv.antipatterndetectionapp.repository"
26
        }
27
)
28
public class ProjectsDbConfig {
29

  
30
    @Primary
31
    @Bean(name = "primaryDataSource")
32
    @ConfigurationProperties(prefix = "spring.datasource")
33
    public DataSource customerDataSource() {
34
        return DataSourceBuilder.create().build();
35
    }
36

  
37
    @Primary
38
    @Bean(name = "primaryEntityManagerFactory")
39
    public LocalContainerEntityManagerFactoryBean
40
    entityManagerFactory(
41
            EntityManagerFactoryBuilder builder,
42
            @Qualifier("primaryDataSource") DataSource dataSource) {
43
        return builder.dataSource(dataSource).packages("cz.zcu.fav.kiv.antipatterndetectionapp.model").build();
44
    }
45

  
46
    @Primary
47
    @Bean(name = "primaryTransactionManager")
48
    public PlatformTransactionManager customerTransactionManager(
49
            @Qualifier("primaryEntityManagerFactory") EntityManagerFactory customerEntityManagerFactory ) {
50
        return new JpaTransactionManager(customerEntityManagerFactory);
51
    }
52
}

Také k dispozici: Unified diff