Guest User

Untitled

a guest
Feb 8th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. package com.test.Config;
  2.  
  3. import javax.servlet.ServletContext;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.ServletRegistration;
  6.  
  7. import org.springframework.web.WebApplicationInitializer;
  8. import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
  9. import org.springframework.web.servlet.DispatcherServlet;
  10.  
  11. public class SpringWebAppInitializer implements WebApplicationInitializer{
  12.  
  13. public void onStartup(ServletContext servletContext) throws ServletException {
  14.  
  15. AnnotationConfigWebApplicationContext appContext = new
  16. AnnotationConfigWebApplicationContext();
  17. appContext.register(ApplicationContextConfig.class);
  18.  
  19. ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
  20. "SpringDispatcher", new DispatcherServlet(appContext));
  21. dispatcher.setLoadOnStartup(1);
  22. dispatcher.addMapping("/");
  23. }
  24.  
  25. }
  26.  
  27. package com.test.Config;
  28.  
  29. import java.util.Properties;
  30.  
  31. import javax.sql.DataSource;
  32.  
  33. import org.apache.commons.dbcp2.BasicDataSource;
  34. import org.hibernate.SessionFactory;
  35. import org.springframework.beans.factory.annotation.Autowired;
  36. import org.springframework.context.annotation.Bean;
  37. import org.springframework.context.annotation.ComponentScan;
  38. import org.springframework.context.annotation.Configuration;
  39. import org.springframework.orm.hibernate5.HibernateTransactionManager;
  40. import org.springframework.orm.hibernate5.LocalSessionFactoryBuilder;
  41. import org.springframework.transaction.annotation.EnableTransactionManagement;
  42. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  43.  
  44. @Configuration
  45. @ComponentScan({"com.Test.Controllers"})
  46. @EnableTransactionManagement
  47. public class ApplicationContextConfig {
  48.  
  49. private Properties getHibernateProperties() {
  50. Properties properties = new Properties();
  51. properties.put("hibernate.show_sql", "true");
  52. properties.put("hibernate.dialect",
  53. "org.hibernate.dialect.MySQLDialect");
  54. return properties;
  55. }
  56.  
  57. @Bean(name = "viewResolver")
  58. public InternalResourceViewResolver getViewResolver() {
  59. InternalResourceViewResolver viewResolver =
  60. new InternalResourceViewResolver();
  61. viewResolver.setPrefix("/WEB-INF/views/");
  62. viewResolver.setSuffix(".jsp");
  63. return viewResolver;
  64. }
  65.  
  66.  
  67. @Bean(name = "dataSource")
  68. public DataSource getDataSource() {
  69. BasicDataSource dataSource = new BasicDataSource();
  70. dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  71. dataSource.setUrl("jdbc:mysql://localhost:3306/mydb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC");
  72. dataSource.setUsername("root");
  73. dataSource.setPassword("admin");
  74.  
  75. return dataSource;
  76. }
  77.  
  78.  
  79. @Autowired
  80. @Bean(name = "sessionFactory")
  81. public SessionFactory getSessionFactory(DataSource dataSource) {
  82.  
  83. LocalSessionFactoryBuilder sessionBuilder =
  84. new LocalSessionFactoryBuilder(dataSource);
  85.  
  86. sessionBuilder.scanPackages("com.Test.Models");
  87. sessionBuilder.addProperties(getHibernateProperties());
  88.  
  89. return sessionBuilder.buildSessionFactory();
  90. }
  91.  
  92. @Autowired
  93. @Bean(name = "transactionManager")
  94. public HibernateTransactionManager getTransactionManager(
  95. SessionFactory sessionFactory) {
  96. HibernateTransactionManager transactionManager =
  97. new HibernateTransactionManager(sessionFactory);
  98.  
  99. return transactionManager;
  100. }
  101.  
  102. }
  103.  
  104. package com.Test.TestPackage;
  105.  
  106. import javax.persistence.EntityManager;
  107. import javax.persistence.PersistenceContext;
  108.  
  109. import org.springframework.transaction.annotation.Transactional;
  110.  
  111. import com.Test.Models.User;
  112.  
  113. @Transactional
  114. public class TestEntityManager {
  115.  
  116. @PersistenceContext
  117. private EntityManager entityManager;
  118.  
  119. public void addUser(User tmp) {
  120. entityManager.persist(tmp); // throws null pointer exception
  121. }
  122. }
Add Comment
Please, Sign In to add comment