sql >> データベース >  >> RDS >> Mysql

Java構成を使用したeclipselink+Spring MVC + MySqlの構成(XML構成なし)

    次の構成により、Springは2つのアプリケーションコンテキスト(ルートコンテキストとWebアプリケーションコンテキスト)を使用できるようになり、必要なもののほとんどを構成できます。

    @Configuration
    @EnableTransactionManagement
    @EnableMBeanExport
    @EnableJpaRepositories("your.jpa.repositories.package")
    @ComponentScan(basePackages = "gr.xe.payments", excludeFilters = {@ComponentScan.Filter(value = Controller.class), @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE ,value = MvcConfig.class)})
    public class ApplicationConfig {
    
    
    }
    
    @EnableWebMvc
    @ComponentScan(basePackages = "your.controller.package", includeFilters = @ComponentScan.Filter(value = Controller.class))
    public class MvcConfig extends WebMvcConfigurerAdapter {
    
        @Bean
        public TilesConfigurer tilesViewResolver() {
            TilesConfigurer tilesViewResolver = new TilesConfigurer();
            tilesViewResolver.setDefinitions(new String[]{"/WEB-INF/tiles.xml"});
            return tilesViewResolver;
        }
    
        @Bean
        public UrlBasedViewResolver urlBasedViewResolver() {
            UrlBasedViewResolver urlBasedViewResolver = new UrlBasedViewResolver();
            urlBasedViewResolver.setViewClass(TilesView.class);
            return urlBasedViewResolver;
        }
    
        @Bean(name = "messageSource")
        public ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource() {
            ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource();
            reloadableResourceBundleMessageSource.setBasename("WEB-INF/i18n/messages");
            reloadableResourceBundleMessageSource.setFallbackToSystemLocale(false);
            reloadableResourceBundleMessageSource.setDefaultEncoding("UTF-8");
            return reloadableResourceBundleMessageSource;
        }
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
        }
    }
    
    
    
    @Configuration
    public class DatabaseConfig {
    
    
        @Bean
        public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
            EclipseLinkJpaVendorAdapter vendorAdapter = new EclipseLinkJpaVendorAdapter();
            vendorAdapter.setGenerateDdl(true);
            vendorAdapter.setShowSql(false);
    
            LocalContainerEntityManagerFactoryBean factory =
                    new LocalContainerEntityManagerFactoryBean();
            factory.setJpaVendorAdapter(vendorAdapter);
            factory.setPackagesToScan("your.domain.package");
            factory.setDataSource(dataSource());
            factory.setJpaProperties(jpaProperties());
            return factory;
        }
    
        @Bean
        public JpaTransactionManager transactionManager() {
            JpaTransactionManager txManager = new JpaTransactionManager();
            txManager.setEntityManagerFactory(entityManagerFactory().getObject());
            return txManager;
        }
    
        @Bean
        public PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() {
            return new PersistenceExceptionTranslationPostProcessor();
        }
    
        @Bean
        public DataSource dataSource() {
            //This uses JNDI, you could create the data source in any way you want
            try {
                Context initCtx = new InitialContext();
                Context envCtx = (Context) initCtx.lookup("java:comp/env");
                return (DataSource) envCtx.lookup("jdbc/yourDS");
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException("Unable to lookup datasource", e);
            }
        }
    
        private Properties jpaProperties() {
            Properties properties = new Properties();
            //use whatever EclipseLink properties you like
            return properties;
        }
    }
    

    編集:

    関連する依存関係は次のとおりです

    <properties>
        <spring.version>3.2.8.RELEASE</spring.version>
        <spring-security.version>3.1.3.RELEASE</spring-security.version>
    </properties>   
    
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
             <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
    
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.2.0.RELEASE</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>jcl-over-slf4j</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>   
    
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.1</version>
        </dependency>   
    



    1. ハッシュマップをstringarrayに変換する

    2. MariaDBでの全文検索の概要

    3. 各行の列値に基づいて行を複製する

    4. YEAR()の例– MySQL