Advertisement
Guest User

Untitled

a guest
Jan 11th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.84 KB | None | 0 0
  1. package com.epam.mep.sportsbetting.app.spring;
  2.  
  3. import java.util.Properties;
  4.  
  5. import javax.persistence.EntityManagerFactory;
  6. import javax.sql.DataSource;
  7.  
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.ComponentScan;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.context.support.ResourceBundleMessageSource;
  12. import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
  13. import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  14. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  15. import org.springframework.orm.jpa.JpaTransactionManager;
  16. import org.springframework.orm.jpa.JpaVendorAdapter;
  17. import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
  18. import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
  19. import org.springframework.transaction.PlatformTransactionManager;
  20. import org.springframework.transaction.annotation.EnableTransactionManagement;
  21.  
  22. import com.epam.mep.sportsbetting.app.Game;
  23. import com.epam.mep.sportsbetting.app.Messages;
  24. import com.epam.mep.sportsbetting.app.OutcomeOddService;
  25. import com.epam.mep.sportsbetting.app.OutcomeService;
  26. import com.epam.mep.sportsbetting.app.PlayerService;
  27. import com.epam.mep.sportsbetting.app.RandomStrategy;
  28. import com.epam.mep.sportsbetting.app.ResultService;
  29. import com.epam.mep.sportsbetting.app.UserInput;
  30. import com.epam.mep.sportsbetting.app.WagerService;
  31. import com.epam.mep.sportsbetting.dao.PlayerMapper;
  32. import com.epam.mep.sportsbetting.dao.PlayerRepositoryImpl;
  33.  
  34. @Configuration
  35. @ComponentScan("com.epam.mep.sportsbetting.app")
  36. @ComponentScan("com.epam.mep.sportsbetting.dao")
  37. @EnableJpaRepositories(basePackages = {"com.epam.mep.sportsbetting.dao"})
  38. @EnableTransactionManagement
  39. public class SpringConfigServices {
  40.     @Bean
  41.     public WagerService wagerService() {
  42.         return new WagerService();
  43.     }
  44.  
  45.     @Bean(initMethod = "populateDatabase")
  46.     public PlayerService playerService() {
  47.         return new PlayerService();
  48.     }
  49.  
  50.     @Bean
  51.     public ResultService resultService() {
  52.         return new ResultService();
  53.     }
  54.  
  55.     @Bean
  56.     public OutcomeService outcomeService() {
  57.         return new OutcomeService();
  58.     }
  59.  
  60.     @Bean
  61.     public OutcomeOddService oddService() {
  62.         return new OutcomeOddService();
  63.     }
  64.  
  65.     @Bean
  66.     public RandomStrategy strategy() {
  67.         return new RandomStrategy();
  68.     }
  69.  
  70.     @Bean
  71.     public Messages messages() {
  72.         return new Messages();
  73.     }
  74.  
  75.     @Bean
  76.     public UserInput userInput() {
  77.         return new UserInput();
  78.     }
  79.  
  80.     @Bean
  81.     public ResourceBundleMessageSource messageSource() {
  82.         ResourceBundleMessageSource source = new ResourceBundleMessageSource();
  83.         source.setBasename("locale\\messages");
  84.         source.setUseCodeAsDefaultMessage(true);
  85.         return source;
  86.     }
  87.  
  88.     @Bean
  89.     public Game game() {
  90.         return new Game();
  91.     }
  92.  
  93.     @Bean
  94.     public PlayerMapper playerMapper() {
  95.         return new PlayerMapper();
  96.     }
  97.  
  98.     @Bean
  99.     public PlayerRepositoryImpl playerRepositoryImpl() {
  100.         return new PlayerRepositoryImpl();
  101.     }
  102.  
  103.     @Bean
  104.     public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
  105.         LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
  106.         em.setDataSource(dataSource());
  107.         em.setPackagesToScan(new String[]{"com.epam.mep.sportsbetting.dao.persist"});
  108.  
  109.         JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
  110.         em.setJpaVendorAdapter(vendorAdapter);
  111.         em.setJpaProperties(additionalProperties());
  112.  
  113.         return em;
  114.     }
  115.  
  116.     @Bean
  117.     public DataSource dataSource() {
  118.         DriverManagerDataSource dataSource = new DriverManagerDataSource();
  119.         dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
  120.         dataSource.setUrl("jdbc:mysql://localhost:3306/sportsbetting");
  121.         dataSource.setUsername("root");
  122.         dataSource.setPassword("root");
  123.         return dataSource;
  124.     }
  125.  
  126.     @Bean
  127.     public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
  128.         JpaTransactionManager transactionManager = new JpaTransactionManager();
  129.         transactionManager.setEntityManagerFactory(emf);
  130.  
  131.         return transactionManager;
  132.     }
  133.  
  134.     @Bean
  135.     public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
  136.         return new PersistenceExceptionTranslationPostProcessor();
  137.     }
  138.  
  139.     Properties additionalProperties() {
  140.         Properties properties = new Properties();
  141.         properties.setProperty("hibernate.hbm2ddl.auto", "create");
  142.         properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
  143.         return properties;
  144.     }
  145.  
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement