根配置用于配置数据源,安全规则,ORM等等
这个
package org.springframework.source.config; import static org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Controller; import org.springframework.source.Application; @Configuration @ComponentScan(basePackageClasses = Application.class,excludeFilters = @Filter({Controller.class,Configuration.class})) class ApplicationConfig { @Bean public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer() { PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); ppc.setLocation(new ClassPathResource("/persistence.properties")); return ppc; } }
package org.springframework.source.config; import java.util.Properties; import javax.sql.DataSource; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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.HibernateJpaVendorAdapter; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.TransactionManagementConfigurer; import org.springframework.source.Application; @Configuration @EnableTransactionManagement @EnableJpaRepositories(basePackageClasses = Application.class) class JpaConfig implements TransactionManagementConfigurer { @Value("${dataSource.driverClassName}") private String driver; @Value("${dataSource.url}") private String url; @Value("${dataSource.username}") private String username; @Value("${dataSource.password}") private String password; @Value("${hibernate.dialect}") private String dialect; @Value("${hibernate.hbm2ddl.auto}") private String hbm2ddlAuto; @Bean public DataSource configureDataSource() { HikariConfig config = new HikariConfig(); config.setDriverClassName(driver); config.setJdbcUrl(url); config.setUsername(username); config.setPassword(password); config.addDataSourceProperty("cachePrepStmts","true"); config.addDataSourceProperty("prepStmtCacheSize","250"); config.addDataSourceProperty("prepStmtCachesqlLimit","2048"); config.addDataSourceProperty("useServerPrepStmts","true"); return new HikariDataSource(config); } @Bean public LocalContainerEntityManagerfactorybean configureEntityManagerFactory() { LocalContainerEntityManagerfactorybean entityManagerfactorybean = new LocalContainerEntityManagerfactorybean(); entityManagerfactorybean.setDataSource(configureDataSource()); entityManagerfactorybean.setPackagesToScan("org.springframework.source"); entityManagerfactorybean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); Properties jpaProperties = new Properties(); jpaProperties.put(org.hibernate.cfg.Environment.DIALECT,dialect); jpaProperties.put(org.hibernate.cfg.Environment.HBM2DDL_AUTO,hbm2ddlAuto); entityManagerfactorybean.setJpaProperties(jpaProperties); return entityManagerfactorybean; } @Bean public PlatformTransactionManager annotationDrivenTransactionManager() { return new JpaTransactionManager(); } }
package org.springframework.source.config; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import org.springframework.context.annotation.*; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.StandardPasswordEncoder; import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices; import org.springframework.source.account.UserService; @Configuration @EnableWebMvcSecurity class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public UserService userService() { return new UserService(); } @Bean public TokenBasedRememberMeServices rememberMeServices() { return new TokenBasedRememberMeServices("remember-me-key",userService()); } @Bean public PasswordEncoder passwordEncoder() { return new StandardPasswordEncoder(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth .eraseCredentials(true) .userDetailsService(userService()) .passwordEncoder(passwordEncoder()); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/","/favicon.ico","/resources/**","/signup").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/signin") .permitAll() .failureUrl("/signin?error=1") .loginProcessingUrl("/authenticate") .and() .logout() .logoutUrl("/logout") .permitAll() .logoutSuccessUrl("/signin?logout") .and() .rememberMe() .rememberMeServices(rememberMeServices()) .key("remember-me-key"); } }这个不是mvc4零配置的内容了,自己看看