Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.fon.documentmanagementsystem.config; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.eclipse.persistence.config.PersistenceUnitProperties; import org.fon.documentmanagementsystem.config.security.SecurityConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.Database; import org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; /** * * @author Vukasin */ @EnableWebMvc @Configuration @ComponentScan(basePackages = { "org.fon.documentmanagementsystem.*" }) @EnableTransactionManagement @EnableJpaRepositories("org.fon.documentmanagementsystem.*") @Import({ SecurityConfig.class }) public class AppConfig extends WebMvcConfigurerAdapter { @Bean(name = "viewResolver") public InternalResourceViewResolver getViewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); return viewResolver; } @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws NamingException { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); em.setJpaVendorAdapter(eclipseLinkJpaVendorAdapter()); em.setPackagesToScan("org.fon.documentmanagementsystem.*"); em.setJpaProperties(jpaProperties()); return em; } @Bean public DataSource dataSource() throws NamingException { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/nst"); return ds; } @Bean public PlatformTransactionManager transactionManager() throws NamingException { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); return transactionManager; } @Bean public PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() { return new PersistenceExceptionTranslationPostProcessor(); } @Bean public EclipseLinkJpaVendorAdapter eclipseLinkJpaVendorAdapter() { EclipseLinkJpaVendorAdapter vendorAdapter = new EclipseLinkJpaVendorAdapter(); vendorAdapter.setDatabasePlatform("org.eclipse.persistence.platform.database.MySQLPlatform"); vendorAdapter.setDatabase(Database.MYSQL); vendorAdapter.setShowSql(true); return vendorAdapter; } @Bean public Properties jpaProperties() { Properties properties = new Properties(); properties.put(PersistenceUnitProperties.WEAVING, "static"); return properties; } @Bean public MultipartResolver multipartResolver() { return new StandardServletMultipartResolver(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("WEB-INF/resources/"); } }