Advertisement
Guest User

Untitled

a guest
Dec 16th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.47 KB | None | 0 0
  1. @Configuration
  2. @EnableTransactionManagement
  3. public class PersistenceConfiguration {
  4. @Bean
  5. public BasicDataSource driverManagerDataSource() {
  6. final BasicDataSource dataSource = new BasicDataSource();
  7. dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  8. dataSource.setUrl("jdbc:mysql://localhost:3306/xxx");
  9. dataSource.setUsername("root");
  10. dataSource.setPassword("root");
  11. dataSource.setValidationQuery("SELECT 1");
  12. dataSource.setDefaultAutoCommit(false);
  13. dataSource.setInitialSize(10);
  14. dataSource.setMaxActive(20);
  15. dataSource.setMaxIdle(10);
  16. return dataSource;
  17. }
  18.  
  19. @Bean
  20. public LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean() {
  21. final LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
  22.  
  23. localContainerEntityManagerFactoryBean.setDataSource(driverManagerDataSource());
  24. localContainerEntityManagerFactoryBean.setPersistenceUnitName("xxxPersistenceUnitName");
  25. localContainerEntityManagerFactoryBean.setPackagesToScan("org.xxx.model");
  26. localContainerEntityManagerFactoryBean.setJpaVendorAdapter(new org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter());
  27. final HashMap<String, String> map = new HashMap<>();
  28.  
  29. map.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
  30. map.put("hibernate.hbm2ddl.auto", "update");
  31.  
  32. map.put("hibernate.show_sql", "false");
  33. map.put("hibernate.format_sql", "false");
  34. localContainerEntityManagerFactoryBean.setJpaPropertyMap(map);
  35. localContainerEntityManagerFactoryBean.setJpaDialect(new org.springframework.orm.jpa.vendor.HibernateJpaDialect());
  36. return localContainerEntityManagerFactoryBean;
  37. }
  38.  
  39. @Bean
  40. public JpaTransactionManager transactionManager() {
  41. final JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
  42. jpaTransactionManager.setEntityManagerFactory(localContainerEntityManagerFactoryBean().getNativeEntityManagerFactory());
  43. return jpaTransactionManager;
  44. }
  45.  
  46. @Configuration
  47. @Import({PersistenceConfiguration.class, UserConfiguration.class, SecurityConfiguration.class})
  48. @ComponentScan(basePackages = "org.xxx")
  49. @EnableWebMvc
  50. public class XxxProjectConfiguration {
  51.  
  52. private static Logger LOG = Logger.getLogger(XxxProjectConfiguration.class);
  53.  
  54. @Autowired
  55. private Environment env;
  56.  
  57. @PostConstruct
  58. public void initApp() {
  59. LOG.debug("Looking for Spring profiles...");
  60. if (env.getActiveProfiles().length == 0) {
  61. LOG.info("No Spring profile configured, running with default configuration.");
  62. } else {
  63. for (String profile : env.getActiveProfiles()) {
  64. LOG.info("Detected Spring profile: {}" + profile);
  65. }
  66. }
  67. }
  68.  
  69. @Autowired
  70. private UserConfiguration userConfiguration;
  71.  
  72.  
  73. // DAO
  74.  
  75. @Bean
  76. public RelationshipDAO relationshipDAO() {
  77. return new RelationshipDAOImpl();
  78. }
  79.  
  80. @Bean
  81. public RelationshipStatusDAO relationshipStatusDAO() {
  82. return new RelationshipStatusDAOImpl();
  83. }
  84.  
  85. @Bean
  86. public MessageDAO messageDAO() {
  87. return new MessageDAOImpl();
  88. }
  89.  
  90. // Services
  91.  
  92. @Bean
  93. public UserServiceImpl userService() {
  94. return new UserServiceImpl(userConfiguration.userDAO(), relationshipDAO(), relationshipStatusDAO(), messageDAO());
  95. }
  96.  
  97. }
  98.  
  99. @Configuration
  100. @Import(PersistenceConfiguration.class)
  101. public class UserConfiguration {
  102.  
  103. @Bean
  104. public UserDAO userDAO() {
  105. return new UserDAOImpl();
  106. }
  107.  
  108. }
  109.  
  110. @Transactional(propagation=Propagation.SUPPORTS)
  111. public class UserServiceImpl implements UserService, Serializable {
  112.  
  113. private static final long serialVersionUID = 1L;
  114.  
  115. private UserDAO userDAO;
  116. private RelationshipDAO relationshipDAO;
  117. private RelationshipStatusDAO relationshipStatusDAO;
  118. private MessageDAO messageDAO;
  119.  
  120. public UserServiceImpl(final UserDAO userDAO, final RelationshipDAO relationshipDAO, final RelationshipStatusDAO relationshipStatusDAO, final MessageDAO messageDAO) {
  121. this.userDAO = userDAO;
  122. this.relationshipDAO = relationshipDAO;
  123. this.relationshipStatusDAO = relationshipStatusDAO;
  124. this.messageDAO = messageDAO;
  125. }
  126.  
  127. @Override
  128. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = UserServiceException.class)
  129. public RelationshipStatus wantsRelationship(final long fromUserId, final long toUserId) throws UserServiceException {
  130. try {
  131. final Relationship relationship = new Relationship(new Date());
  132.  
  133. User fromUser = userDAO.get(fromUserId);
  134. User toUser = new User(toUserId);
  135.  
  136. relationship.getUsers().add(fromUser);
  137. fromUser.getRelationships().add(relationship);
  138.  
  139. relationship.getUsers().add(toUser);
  140. toUser.getRelationships().add(relationship);
  141.  
  142. relationship.setWantsFromUserId(fromUserId);
  143.  
  144. final Message message = new Message(fromUserId, "Hi ! My name is " + fromUser.getFirstName() + ", I want to meet you");
  145. relationship.getMessages().add(message);
  146.  
  147. relationship.setStatus(new RelationshipStatus(Status.WANTS));
  148.  
  149. relationshipDAO.persist(relationship);
  150. return relationship.getStatus();
  151. } catch (Exception e) {
  152. throw new UserServiceException(e);
  153. }
  154. }
  155.  
  156. ...
  157.  
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement