Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.epam.mep.sportsbetting.app.spring;
- import java.util.Properties;
- import javax.persistence.EntityManagerFactory;
- import javax.sql.DataSource;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.support.ResourceBundleMessageSource;
- import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
- import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.JpaVendorAdapter;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
- import org.springframework.transaction.PlatformTransactionManager;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import com.epam.mep.sportsbetting.app.Game;
- import com.epam.mep.sportsbetting.app.Messages;
- import com.epam.mep.sportsbetting.app.OutcomeOddService;
- import com.epam.mep.sportsbetting.app.OutcomeService;
- import com.epam.mep.sportsbetting.app.PlayerService;
- import com.epam.mep.sportsbetting.app.RandomStrategy;
- import com.epam.mep.sportsbetting.app.ResultService;
- import com.epam.mep.sportsbetting.app.UserInput;
- import com.epam.mep.sportsbetting.app.WagerService;
- import com.epam.mep.sportsbetting.dao.PlayerMapper;
- import com.epam.mep.sportsbetting.dao.PlayerRepositoryImpl;
- @Configuration
- @ComponentScan("com.epam.mep.sportsbetting.app")
- @ComponentScan("com.epam.mep.sportsbetting.dao")
- @EnableJpaRepositories(basePackages = {"com.epam.mep.sportsbetting.dao"})
- @EnableTransactionManagement
- public class SpringConfigServices {
- @Bean
- public WagerService wagerService() {
- return new WagerService();
- }
- @Bean(initMethod = "populateDatabase")
- public PlayerService playerService() {
- return new PlayerService();
- }
- @Bean
- public ResultService resultService() {
- return new ResultService();
- }
- @Bean
- public OutcomeService outcomeService() {
- return new OutcomeService();
- }
- @Bean
- public OutcomeOddService oddService() {
- return new OutcomeOddService();
- }
- @Bean
- public RandomStrategy strategy() {
- return new RandomStrategy();
- }
- @Bean
- public Messages messages() {
- return new Messages();
- }
- @Bean
- public UserInput userInput() {
- return new UserInput();
- }
- @Bean
- public ResourceBundleMessageSource messageSource() {
- ResourceBundleMessageSource source = new ResourceBundleMessageSource();
- source.setBasename("locale\\messages");
- source.setUseCodeAsDefaultMessage(true);
- return source;
- }
- @Bean
- public Game game() {
- return new Game();
- }
- @Bean
- public PlayerMapper playerMapper() {
- return new PlayerMapper();
- }
- @Bean
- public PlayerRepositoryImpl playerRepositoryImpl() {
- return new PlayerRepositoryImpl();
- }
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(dataSource());
- em.setPackagesToScan(new String[]{"com.epam.mep.sportsbetting.dao.persist"});
- 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/sportsbetting");
- dataSource.setUsername("root");
- dataSource.setPassword("root");
- return dataSource;
- }
- @Bean
- public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(emf);
- return transactionManager;
- }
- @Bean
- public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
- Properties additionalProperties() {
- Properties properties = new Properties();
- properties.setProperty("hibernate.hbm2ddl.auto", "create");
- properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
- return properties;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement