多文件上传
public int save(Role role, @RequestParam("nfile") MultipartFile nfile, HttpServletRequest request) {System.out.println(nfile.getOriginalFilename());String path = request.getSession().getServletContext().getRealPath("/upload");File file = new File(path);if (!file.exists()) {file.mkdir();}String filename = System.currentTimeMillis() + nfile.getOriginalFilename();try {nfile.transferTo(new File(file, filename));} catch (IOException e) {e.printStackTrace();}return roleService.save(role);}
分页
package com.zb.util;import java.util.List;public class PageUtil<T> {/*当前页*/private Integer currentPage = 1;/*每页的条数*/private Integer pageSize = 2;//总记录数private Integer totalCount;//总页数private Integer totalPageCount;// 分页数据private List<T> data;public Integer getCurrentPage() {return currentPage;}public void setCurrentPage(Integer currentPage) {this.currentPage = currentPage;}public Integer getPageSize() {return pageSize;}public void setPageSize(Integer pageSize) {this.pageSize = pageSize;}public Integer getTotalCount() {return totalCount;}public void setTotalCount(Integer totalCount) {this.totalCount = totalCount;}public Integer getTotalPageCount() {totalPageCount = totalCount % pageSize == 0? totalCount / pageSize : totalCount / pageSize + 1;return totalPageCount;}public void setTotalPageCount(Integer totalPageCount) {this.totalPageCount = totalPageCount;}public List<T> getData() {return data;}public void setData(List<T> data) {this.data = data;}
}
跨域配置
package com.zb.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;@Configuration
public class CorsConfig {@Beanpublic CorsFilter corsFilter() {// 1. 创建CORS配置对象CorsConfiguration config = new CorsConfiguration();// 允许的源(生产环境建议指定具体域名,而非*)config.addAllowedOriginPattern("*");// 允许携带凭证(cookie等)config.setAllowCredentials(true);// 允许的HTTP方法config.addAllowedMethod("*");// 允许的请求头config.addAllowedHeader("*");// 暴露的响应头(前端可以获取的额外响应头)config.addExposedHeader("token");// 预检请求的缓存时间(秒)config.setMaxAge(3600L);// 2. 创建URL匹配源UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();// 对所有路径应用CORS配置source.registerCorsConfiguration("/**", config);// 3. 创建并返回CORS过滤器return new CorsFilter(source);}
}
数据库连接
url: jdbc:mysql://127.0.0.1:3306/《数据库》?useUnicode=true&autoReconnect=true&autoReconnectForPools=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
Redis使用FastJson序列化配置
package com.zb.config;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.type.TypeFactory;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;import java.nio.charset.Charset;/*** Redis使用FastJson序列化** @author sg*/
public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");private Class<T> clazz;static {ParserConfig.getGlobalInstance().setAutoTypeSupport(true);}public FastJsonRedisSerializer(Class<T> clazz) {super();this.clazz = clazz;}@Overridepublic byte[] serialize(T t) throws SerializationException {if (t == null) {return new byte[0];}return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);}@Overridepublic T deserialize(byte[] bytes) throws SerializationException {if (bytes == null || bytes.length <= 0) {return null;}String str = new String(bytes, DEFAULT_CHARSET);return JSON.parseObject(str, clazz);}protected JavaType getJavaType(Class<?> clazz) {return TypeFactory.defaultInstance().constructType(clazz);}
}
Redis配置
package com.zb.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<Object, Object> template = new RedisTemplate<>();template.setConnectionFactory(connectionFactory);FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);// 使用StringRedisSerializer来序列化和反序列化redis的key值template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(serializer);// Hash的key也采用StringRedisSerializer的序列化方式template.setHashKeySerializer(new StringRedisSerializer());template.setHashValueSerializer(serializer);template.afterPropertiesSet();return template;}
}