多文件上传
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 { /*当前页*/ private Integer currentPage = 1; /*每页的条数*/ private Integer pageSize = 2; //总记录数 private Integer totalCount; //总页数 private Integer totalPageCount; // 分页数据 private List 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 getData() { return data; } public void setData(List 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;@Configurationpublic class CorsConfig { @Bean public 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 implements RedisSerializer { public static final Charset DEFAULT_CHARSET = Charset.forName(\"UTF-8\"); private Class clazz; static { ParserConfig.getGlobalInstance().setAutoTypeSupport(true); } public FastJsonRedisSerializer(Class clazz) { super(); this.clazz = clazz; } @Override public byte[] serialize(T t) throws SerializationException { if (t == null) { return new byte[0]; } return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET); } @Override public 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;@Configurationpublic class RedisConfig { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate 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; }}