11package lk .ijse .dep .note .config ;
22
3+ import com .zaxxer .hikari .HikariDataSource ;
34import org .springframework .beans .factory .annotation .Autowired ;
45import org .springframework .context .annotation .Bean ;
56import org .springframework .context .annotation .Configuration ;
67import org .springframework .context .annotation .PropertySource ;
78import org .springframework .core .env .Environment ;
9+ import org .springframework .orm .jpa .JpaTransactionManager ;
810import org .springframework .orm .jpa .JpaVendorAdapter ;
911import org .springframework .orm .jpa .LocalContainerEntityManagerFactoryBean ;
1012import org .springframework .orm .jpa .vendor .Database ;
1113import org .springframework .orm .jpa .vendor .HibernateJpaVendorAdapter ;
14+ import org .springframework .transaction .PlatformTransactionManager ;
15+ import org .springframework .transaction .annotation .EnableTransactionManagement ;
1216
17+ import javax .persistence .EntityManagerFactory ;
1318import javax .sql .DataSource ;
1419import javax .xml .crypto .Data ;
1520
1621@ Configuration
1722@ PropertySource ("classpath:application.yml" )
23+ @ EnableTransactionManagement
1824public class JpaConfig {
1925 @ Autowired
2026 private Environment env ;
@@ -35,4 +41,19 @@ public JpaVendorAdapter jpaVendorAdapter(){
3541 jpaVendorAdapter .setDatabase (Database .MYSQL );
3642 return jpaVendorAdapter ;
3743 }
44+
45+ @ Bean
46+ public DataSource dataSource (){
47+ final HikariDataSource hikariDataSource = new HikariDataSource ();
48+ hikariDataSource .setJdbcUrl (env .getRequiredProperty ("hikari.jdbc-url" ));
49+ hikariDataSource .setUsername (env .getRequiredProperty ("hikari.username" ));
50+ hikariDataSource .setPassword (env .getRequiredProperty ("hikari.password" ));
51+ hikariDataSource .setDriverClassName (env .getRequiredProperty ("hikari.driver-classname" ));
52+ hikariDataSource .setMaximumPoolSize (env .getRequiredProperty ("hikari.max-pool-size" ,Integer .class ));
53+ return hikariDataSource ;
54+ }
55+
56+ public PlatformTransactionManager transactionManager (EntityManagerFactory emf ){
57+ return new JpaTransactionManager (emf );
58+ }
3859}
0 commit comments