Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.kelvinsantiago.configuracao;
- import com.google.gson.*;
- 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.http.converter.HttpMessageConverter;
- import org.springframework.http.converter.json.GsonHttpMessageConverter;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor;
- import org.springframework.orm.jpa.vendor.Database;
- import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
- import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- import javax.xml.bind.DatatypeConverter;
- import java.lang.reflect.Type;
- import java.util.List;
- @Configuration
- @EnableTransactionManagement
- @EnableWebMvc
- @ComponentScan(basePackages = {"br.com.kelvinsantiago"})
- public class ConfiguracaoWeb extends WebMvcConfigurerAdapter {
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/**/*.html").addResourceLocations("/web/");
- registry.addResourceHandler("/web/**").addResourceLocations("/web/");
- }
- @Override
- public void addViewControllers(ViewControllerRegistry registry) {
- registry.addViewController("/").setViewName("/web/index.html");
- registry.addViewController("/agenda").setViewName("/web/pages/index.html");
- }
- @Override
- public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
- GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter();
- Gson gson = buildGson();
- gsonHttpMessageConverter.setGson(gson);
- converters.add(gsonHttpMessageConverter);
- }
- protected Gson buildGson() {
- Gson gson = new GsonBuilder()
- .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
- .registerTypeHierarchyAdapter(byte[].class, new ByteArrayToBase64TypeAdapter())
- .excludeFieldsWithoutExposeAnnotation()
- .create();
- return gson;
- }
- //Conversor base64 para byte[] e byte[] para base64
- private static class ByteArrayToBase64TypeAdapter implements JsonSerializer<byte[]>, JsonDeserializer<byte[]> {
- public byte[] deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
- return DatatypeConverter.parseBase64Binary(json.getAsString());
- }
- public JsonElement serialize(byte[] src, Type typeOfSrc, JsonSerializationContext context) {
- return new JsonPrimitive(DatatypeConverter.printBase64Binary(src));
- }
- }
- @Bean
- public OpenEntityManagerInViewInterceptor openEntityManagerInViewInterceptor() {
- OpenEntityManagerInViewInterceptor openEntityManagerInViewInterceptor = new OpenEntityManagerInViewInterceptor();
- openEntityManagerInViewInterceptor.setEntityManagerFactory(entityManager().getNativeEntityManagerFactory());
- return openEntityManagerInViewInterceptor;
- }
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManager() {
- LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean();
- entityManager.setPackagesToScan("br.com.kelvinsantiago");
- entityManager.setDataSource(dataSource());
- HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
- jpaVendorAdapter.setDatabase(Database.POSTGRESQL);
- jpaVendorAdapter.setShowSql(true);
- jpaVendorAdapter.setGenerateDdl(true);
- jpaVendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQLDialect");
- entityManager.setJpaVendorAdapter(jpaVendorAdapter);
- return entityManager;
- }
- // Cria o DataSource para aplicação
- public DriverManagerDataSource dataSource() {
- DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName("org.postgresql.Driver");
- dataSource.setUrl("jdbc:postgresql://localhost:5432/neogenda");
- dataSource.setUsername("");
- dataSource.setPassword("");
- return dataSource;
- }
- // Cria o gerenciador de transações do dataSource
- @Bean
- public JpaTransactionManager transactionManager() {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManager()
- .getNativeEntityManagerFactory());
- return transactionManager;
- }
- @Bean
- public ResourceBundleMessageSource messageSource() {
- ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
- messageSource.setDefaultEncoding("UTF-8");
- messageSource.setBasenames("pagseguro");
- return messageSource;
- }
- /* @Bean
- public CommonsMultipartResolver multipartResolver() {
- CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
- multipartResolver.setMaxUploadSize(-1);
- multipartResolver.setMaxInMemorySize(100000);
- return multipartResolver;
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement