Advertisement
Guest User

Untitled

a guest
Feb 13th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.78 KB | None | 0 0
  1. package br.com.kelvinsantiago.configuracao;
  2.  
  3. import com.google.gson.*;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.ComponentScan;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.context.support.ResourceBundleMessageSource;
  8. import org.springframework.http.converter.HttpMessageConverter;
  9. import org.springframework.http.converter.json.GsonHttpMessageConverter;
  10. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  11. import org.springframework.orm.jpa.JpaTransactionManager;
  12. import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
  13. import org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor;
  14. import org.springframework.orm.jpa.vendor.Database;
  15. import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
  16. import org.springframework.transaction.annotation.EnableTransactionManagement;
  17. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  18. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  19. import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
  20. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  21.  
  22. import javax.xml.bind.DatatypeConverter;
  23. import java.lang.reflect.Type;
  24. import java.util.List;
  25.  
  26. @Configuration
  27. @EnableTransactionManagement
  28. @EnableWebMvc
  29. @ComponentScan(basePackages = {"br.com.kelvinsantiago"})
  30. public class ConfiguracaoWeb extends WebMvcConfigurerAdapter {
  31.  
  32. @Override
  33. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  34. registry.addResourceHandler("/**/*.html").addResourceLocations("/web/");
  35. registry.addResourceHandler("/web/**").addResourceLocations("/web/");
  36. }
  37.  
  38. @Override
  39. public void addViewControllers(ViewControllerRegistry registry) {
  40. registry.addViewController("/").setViewName("/web/index.html");
  41. registry.addViewController("/agenda").setViewName("/web/pages/index.html");
  42.  
  43. }
  44.  
  45. @Override
  46. public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  47. GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter();
  48.  
  49. Gson gson = buildGson();
  50.  
  51. gsonHttpMessageConverter.setGson(gson);
  52.  
  53. converters.add(gsonHttpMessageConverter);
  54. }
  55.  
  56.  
  57. protected Gson buildGson() {
  58. Gson gson = new GsonBuilder()
  59. .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
  60. .registerTypeHierarchyAdapter(byte[].class, new ByteArrayToBase64TypeAdapter())
  61. .excludeFieldsWithoutExposeAnnotation()
  62. .create();
  63.  
  64. return gson;
  65. }
  66.  
  67. //Conversor base64 para byte[] e byte[] para base64
  68. private static class ByteArrayToBase64TypeAdapter implements JsonSerializer<byte[]>, JsonDeserializer<byte[]> {
  69. public byte[] deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
  70. return DatatypeConverter.parseBase64Binary(json.getAsString());
  71. }
  72.  
  73. public JsonElement serialize(byte[] src, Type typeOfSrc, JsonSerializationContext context) {
  74. return new JsonPrimitive(DatatypeConverter.printBase64Binary(src));
  75. }
  76. }
  77.  
  78. @Bean
  79. public OpenEntityManagerInViewInterceptor openEntityManagerInViewInterceptor() {
  80. OpenEntityManagerInViewInterceptor openEntityManagerInViewInterceptor = new OpenEntityManagerInViewInterceptor();
  81.  
  82. openEntityManagerInViewInterceptor.setEntityManagerFactory(entityManager().getNativeEntityManagerFactory());
  83.  
  84. return openEntityManagerInViewInterceptor;
  85. }
  86.  
  87. @Bean
  88. public LocalContainerEntityManagerFactoryBean entityManager() {
  89. LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean();
  90. entityManager.setPackagesToScan("br.com.kelvinsantiago");
  91. entityManager.setDataSource(dataSource());
  92.  
  93. HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
  94. jpaVendorAdapter.setDatabase(Database.POSTGRESQL);
  95. jpaVendorAdapter.setShowSql(true);
  96. jpaVendorAdapter.setGenerateDdl(true);
  97. jpaVendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQLDialect");
  98.  
  99. entityManager.setJpaVendorAdapter(jpaVendorAdapter);
  100.  
  101. return entityManager;
  102. }
  103.  
  104. // Cria o DataSource para aplicação
  105. public DriverManagerDataSource dataSource() {
  106. DriverManagerDataSource dataSource = new DriverManagerDataSource();
  107. dataSource.setDriverClassName("org.postgresql.Driver");
  108. dataSource.setUrl("jdbc:postgresql://localhost:5432/neogenda");
  109. dataSource.setUsername("");
  110. dataSource.setPassword("");
  111. return dataSource;
  112. }
  113.  
  114. // Cria o gerenciador de transações do dataSource
  115. @Bean
  116. public JpaTransactionManager transactionManager() {
  117. JpaTransactionManager transactionManager = new JpaTransactionManager();
  118. transactionManager.setEntityManagerFactory(entityManager()
  119. .getNativeEntityManagerFactory());
  120.  
  121. return transactionManager;
  122. }
  123.  
  124. @Bean
  125. public ResourceBundleMessageSource messageSource() {
  126. ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
  127. messageSource.setDefaultEncoding("UTF-8");
  128. messageSource.setBasenames("pagseguro");
  129. return messageSource;
  130. }
  131.  
  132. /* @Bean
  133. public CommonsMultipartResolver multipartResolver() {
  134. CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
  135. multipartResolver.setMaxUploadSize(-1);
  136. multipartResolver.setMaxInMemorySize(100000);
  137. return multipartResolver;
  138. }*/
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement