标签:driver name opp 标签 tip ann lin black erp
//对于SpringBoot所推崇的去除xml化编程需求,将原始的spring-*.xml文件使用配置类的方式进行注入
//mybatis
// 该标签表示将这个类注入到Spring的IOC容器内
@Configuration
// 配置mybatis Mapper的扫描路径
@MapperScan("com.swust.emporium.dao")
public class DataSourceConfiguration {
// 定义需要注入的JDBC连接变量
@Value("${jdbc.url}")
private String jdbcUrl;
@Value("${jdbc.driver}")
private String jdbcDriver;
@Value("${jdbc.username}")
private String jdbcUserName;
@Value("${jdbc.password}")
private String jdbcPassword;
/**
* 生成与Spring-dao.xml对应的bean标签 dataSource
*/
@Bean(name = "dataSource")
public ComboPooledDataSource createDataSource(){
// 创建Bean对象
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 设置配置信息
dataSource.setJdbcUrl(jdbcUrl);
try {
dataSource.setDriverClass(jdbcDriver);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
// 对用户名密码进行解密
String name = DESUtil.getDecryptString(jdbcUserName);
dataSource.setUser(name);
String password = DESUtil.getDecryptString(jdbcPassword);
dataSource.setPassword(password);
// 设置固有属性
dataSource.setMaxPoolSize(30);
dataSource.setMinPoolSize(10);
// 关闭连接后不自动提交
dataSource.setAutoCommitOnClose(false);
dataSource.setCheckoutTimeout(10000);
dataSource.setAcquireRetryAttempts(2);
return dataSource;
}
}
@Configuration
public class SessionFactoryConfiguration {
private static String mybatisConfigFile;
private static String mapperPath;
/**
* 静态属性需要通过setter方法注入 不可以直接注入
*/
// 基本属性
@Value("${mybatis_config_file}")
public void setMybatisConfigFile(String mybatisConfigFile) {
SessionFactoryConfiguration.mybatisConfigFile = mybatisConfigFile;
}
// mybatis mapper文件的所在路径
@Value("${mapper_path}")
public void setMapperPath(String mapperPath) {
SessionFactoryConfiguration.mapperPath = mapperPath;
}
// 实体类所在的package
@Value("${type_alias_package}")
private String typeAliasPackage;
@Autowired
private DataSource dataSource;
/**
* 创建SqlSessionFactoryBean实例对象,并设置配置属性
* @return
*/
@Bean(name = "sqlSessionFactory")
public SqlSessionFactoryBean sqlSessionFactoryBean() throws IOException {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
//mybatis 的配置文件
sqlSessionFactoryBean.setConfigLocation(new ClassPathResource(mybatisConfigFile));
PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver
= new PathMatchingResourcePatternResolver();
String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + mapperPath;
sqlSessionFactoryBean.setMapperLocations(pathMatchingResourcePatternResolver.getResources(packageSearchPath));
sqlSessionFactoryBean.setTypeAliasesPackage(typeAliasPackage);
return sqlSessionFactoryBean;
}
}
//service
// Spring事物配置
@Configuration
// 开启事务支持
@EnableTransactionManagement
public class TransactionManagementConfiguration implements TransactionManagementConfigurer {
@Autowired
private DataSource dataSource;
/***
* 关于事务管理,需要返回Platform里边的PlatformTransactionManager的实现
* @return
*/
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new DataSourceTransactionManager(dataSource);
}
}
//springmvc controller
@Configuration
//将mvc交给我们自己管理
//等价于标签 <mvc:annotation-driven>
@EnableWebMvc
public class MvcConfiguration implements WebMvcConfigurer,ApplicationContextAware {
//Spring 容器
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
/**
* 定义默认的请求处理器
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
/**
* 静态资源配置
* 将/upload 映射为 D:/projectdev/image/upload
* 需要自己更改
* @param registry
*/
// @Override
// public void addResourceHandlers(ResourceHandlerRegistry registry) {
// registry.addResourceHandler("/upload/**")
// .addResourceLocations("file:D:\\projectdev\\image\\upload\\");
// }
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/root/imgdatas/upload/images/**")
.addResourceLocations("file:/root/imgdatas/upload/images/");
registry.addResourceHandler("/root/imgdatas/project/**")
.addResourceLocations("file:/root/imgdatas/project");
}
/*
* 创建viewResolver
* */
@Bean(name = "viewResolver")
public ViewResolver viewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setApplicationContext(applicationContext);
viewResolver.setCache(false);
viewResolver.setPrefix("/WEB-INF/html/");
viewResolver.setSuffix(".html");
return viewResolver;
}
/*
* 文件上传解析器
* */
@Bean(name = "multipartResolver")
public CommonsMultipartResolver multipartResolver(){
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setDefaultEncoding("utf-8");
multipartResolver.setMaxInMemorySize(20971520);
multipartResolver.setMaxUploadSize(20971520);
return multipartResolver;
}
//注册servlet 验证码
@Bean
public ServletRegistrationBean servletRegistrationBean(){
ServletRegistrationBean servlet = new ServletRegistrationBean(new KaptchaServlet(),"/kaptcha");
servlet.addInitParameter("kaptcha.border","no");
servlet.addInitParameter("kaptcha.textproducer.font.color","red");
servlet.addInitParameter("kaptcha.image.width","135");
servlet.addInitParameter("kaptcha.textproducer.char.string","ACDEFHKGPRSTWX23456789");
servlet.addInitParameter("kaptcha.image.height","50");
servlet.addInitParameter("kaptcha.textproducer.font.size","43");
servlet.addInitParameter("kaptcha.noise.color","black");
servlet.addInitParameter("kaptcha.textproducer.char.length","4");
servlet.addInitParameter("kaptcha.textproducer.font.names","Arial");
return servlet;
}
// @Bean
// public FilterRegistrationBean filterRegistrationBean(){
//
// CodingFilter codingFilter = new CodingFilter();
//
// FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(codingFilter);
// filterRegistrationBean.addUrlPatterns("/*");
// return filterRegistrationBean;
//
// }
// @Bean
// public ServletListenerRegistrationBean servletListenerRegistrationBean(){
// PathListener pathListener = new PathListener();
// ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean(pathListener);
// return servletListenerRegistrationBean;
// }
}
// interceptor 拦截器
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(frontendLoginInterceptor())
.excludePathPatterns("/frontend/getoperationlogin")
.excludePathPatterns("/frontend/login")
.addPathPatterns("/frontend/**");
registry.addInterceptor(shopLoginInterceptor())
.addPathPatterns("/shopadmin/**");
registry.addInterceptor(shopPermissionInterceptor())
.excludePathPatterns("/shopadmin/shoplist","/shopadmin/getshoplist","/shopadmin/getshopinitinfo")
.excludePathPatterns("/shopadmin/registershop","/shopadmin/shopoperation")
.excludePathPatterns("/shopadmin/shopmanagement","/shopadmin/getshopmanagementinfo")
.addPathPatterns("/shopadmin/**");
}
@Bean
public ShopLoginInterceptor shopLoginInterceptor(){
return new ShopLoginInterceptor();
}
@Bean
public ShopPermissionInterceptor shopPermissionInterceptor(){
return new ShopPermissionInterceptor();
}
@Bean
public FrontendLoginInterceptor frontendLoginInterceptor(){
return new FrontendLoginInterceptor();
}
}
标签:driver name opp 标签 tip ann lin black erp
原文地址:https://www.cnblogs.com/walxt/p/14322943.html