SpringBoot
GoslingWu
微信公众号请搜索 架构师与哈苏
展开
-
SpringBoot开启异步方法
在启动类上加入@EnableAsync异步方法/** * 简单文本邮件 * @param to 收件人 * @param subject 主题 * @param content 内容 */ @Async public void sendSimpleMail(String to, String subject, String c...原创 2020-03-03 20:01:28 · 149 阅读 · 0 评论 -
SpringBoot发送邮件
maven配置<!--mail--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> ...原创 2020-03-03 20:00:53 · 381 阅读 · 0 评论 -
@CreatedDate@CreatedBy@LastModifiedBy@LastModifiedDate
实体类,注意需要加上@EntityListeners(AuditingEntityListener.class)这个注解才能使@CreatedDate@LastModifiedDate生效package com.gecko.charging.partner.entity;import com.gecko.charging.partner.enums.PartnerType;import c...原创 2020-03-03 20:00:17 · 504 阅读 · 0 评论 -
枚举保存到数据库中为序号解决方案
普通枚举转换配置枚举类package com.gecko.charging.partner.enums;import com.alibaba.fastjson.annotation.JSONType;import com.gecko.charging.common.BaseEnum;import com.gecko.charging.util.json.EnumDeserializer...原创 2020-03-03 19:59:46 · 944 阅读 · 0 评论 -
SpringBoot枚举传参
创建一个接口所有枚举继承package com.gecko.charging.common;public interface BaseEnum { Integer getCode();}具体的枚举类型package com.gecko.charging.partner.enums;import com.alibaba.fastjson.annotation.JSONTyp...原创 2020-03-03 19:59:14 · 1961 阅读 · 0 评论 -
@ControllerAdvice注解(全局异常捕获)
背景@ControllerAdvice 注解 通常用于定义@ExceptionHandler, @InitBinder和@ModelAttribute 适用于所有@RequestMapping方法的方法。@ExceptionHandler异常处理器作用:可以拦截程序抛出来的指定异常。使用场景:主要使用与项目统一异常处理,对于rest风格的返回统一异常格式。/** * 指定拦...原创 2020-02-12 10:17:03 · 759 阅读 · 0 评论 -
SpringBoot自定义参数验证器
前要之前我们介绍了JSR-303验证方式,十分的方便Spring都帮我们封装好了,但是对一些复杂的验证,还是需要更加灵活的验证器的。JSR-303验证器传送门:https://www.jianshu.com/p/6980266af68e自定义验证器是基于WebDataBinder,在请求流程中处理可以注册转换器之外,它还可以注册验证器!请求参数实体类StudentModel.javap...原创 2020-02-12 10:16:31 · 1659 阅读 · 0 评论 -
@NotNull-JSR-303验证
背景Spring Boot 引入Hibernate Validator 机制来支持 JSR-303 验证规范实现请求参数model类:package com.wzq.test.model;import lombok.Data;import org.springframework.stereotype.Component;import javax.validation.const...原创 2020-02-12 10:15:58 · 390 阅读 · 0 评论 -
SpringBoot自定义请求参数转换器
需求我们可能对接客户的系统的时候,虽然Spring为我们提供的很多方便的转换器,但是遇到还是可能遇到需要自定义请求参数转换器的情况。日期转换器SpringBoot默认是没有配置日期转换器的我们可以自己写,也可以使用配置让SpringBoot来生成:https://www.jianshu.com/p/4b29beffcd8e日期转换器配置代码:package com.wzq.config....原创 2020-02-12 10:15:26 · 1297 阅读 · 0 评论 -
SpringBoot获取请求的参数
说明SpringBoot 为我们封装了许多,简便的获取请求参数的方法!1.获取无注解获取请求参数请求地址:http://192.168.0.115:8080/myproject/test/noAnnotationsMethod?name=hello@GetMapping("noAnnotationsMethod") public Object noAnnotationsMethod...原创 2020-02-12 10:14:55 · 1318 阅读 · 0 评论 -
SpringBoot-400-Bad-Request(Request-header-is-too-large)
错误Request header is too large分析请求头内容过大解决方案1.SpringBoot版本1.3.8.RELEASE在配置文件中添加:如果springboot内置tomcat服务器使用下面配置:server: tomcat: max-http-header-size: 10000000如果springboot内置jetty服务器使用下面配置:s...原创 2020-02-12 10:13:34 · 3256 阅读 · 0 评论 -
SpringBoot请求日期参数异常(Failed-to-convert-value-of-type-'java-lang-String'-
问题Failed to convert value of type ‘java.lang.String’ to required type ‘java.util.Date’; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [ja...原创 2020-02-11 16:46:10 · 2058 阅读 · 0 评论 -
阿里云视频点播获取视频点播的video信息
背景因为在项目中需要使用阿里云的视频点播服务,需要获取视频点播的时长信息。工具类生成签名串SignatureSignatureUtils.javapackage com.meeno.wzq.alibaba.signature;import com.google.common.collect.Maps;import com.meeno.framework.util.HttpUtil...原创 2020-02-11 16:44:29 · 1880 阅读 · 0 评论 -
java导出excel(easypoi)
介绍easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板官网地址:http://easypoi.mydoc.io/easypoi需要导入的包 <!--easypoi--> <dependency>...原创 2020-02-11 16:43:01 · 1145 阅读 · 0 评论 -
java获取真实ip工具类
场景有的时候我们需要获取客户端的真实ip,用来实现ip白名单,和黑名单的配置!ip工具类如下package com.meeno.framework.utils;import javax.servlet.http.HttpServletRequest;/** * @Auther: Wzq * @Date: 2019/3/14 14:53 * @Description: 天青色等...原创 2020-02-11 16:42:29 · 949 阅读 · 0 评论 -
java批量下载文件为zip包
批量下载文件为zip包的工具类package com.meeno.trainsys.util;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.net.URLEncoder;import java...原创 2020-02-11 16:41:41 · 1327 阅读 · 3 评论 -
java-高并发解决方案
普通单应用并发:1.使用关键字synchronized就可实现。5) 即想提高效率不对方法添加synchronized,又想保证数据准确性,最后使用synchronized(userId) 在Controller层加锁(保证了只有重复数据被加锁,在Controller使用的原因是因为事务会在Service调用完毕才被提交,我实验过在Service同步,150并发会出现2条重复数据,因为事务还没...原创 2020-02-11 16:40:02 · 151 阅读 · 0 评论 -
jpa写原生sql-EntityManager
废话不多说package com.meeno.trainsys.meeting.service;import com.google.common.collect.Lists;import com.meeno.framework.constants.Constants;import com.meeno.framework.page.utils.PageUtils;import com....原创 2020-02-11 16:33:58 · 773 阅读 · 1 评论 -
Specification排序orderby
废话不多说直接贴代码 Specification<Course> sf = new Specification<Course>() { @Override public Predicate toPredicate(Root<Course> root, CriteriaQuery<?> ...原创 2020-02-09 13:49:03 · 5238 阅读 · 0 评论 -
Specification使用notin
废话不多说直接贴代码 Specification<Employee> employeeSpecification = new Specification<Employee>() { @Override public Predicate toPredicate(Root<Employee> root,...原创 2020-02-09 13:48:32 · 2292 阅读 · 0 评论 -
SpringBoot监听redis订阅监听和发布订阅
前言我们可以在redis中发布一条订阅到通道中,所有监听了这个通道的都可以收到这个发布的内容!redis订阅监听配置类代码如下:RedisListenerConfig.javapackage com.wzq.redis.config;import org.springframework.beans.factory.annotation.Autowired;import org.s...原创 2020-02-09 13:47:12 · 2318 阅读 · 0 评论 -
SpringBoot监听redis过期key
开启过期监听vim /etc/redis.conf取消notify-keyspace-events Elg的注释pom.xml添加:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...原创 2020-02-09 13:46:27 · 570 阅读 · 0 评论 -
@Transactional-同一个类中方法自调,调用方法事物失效
问题分析一个类中的方法调用另一个事物传播性为创建事物的方法,调用的方法事物失效?SpringAOP 代理的Service对象调用了其方法,这个方法再去调用这个Service中的其他方法是没有使用AOP代理的对象去调用的所以也不会创建新的事物。方案1.再创建一个Service,不要在同一个类中调用。(那它们都是AOP代理的对象,都会创建新的事物)。2.集成ApplicationContex...原创 2020-02-08 13:32:53 · 1845 阅读 · 0 评论 -
Spring-Boot的动态代理AOP原理
前言Spring AOP使用了动态代理技术,动态代理在业界比较流行的实现方式有,CGLIB,Javassist,ASM等等。Spring动态代理实现方式Spring采用了JDK和CGLIB两种方式,我们一般都是接口,配实现类,对应这种方式Spring采用的代理方式是JDK代理,如果实现类没有使用接口,就一个实现类的话就采用CGLIB代理。个人微信公众,经常更新一些实用的干货:...原创 2020-02-08 13:32:22 · 585 阅读 · 0 评论 -
jpa-和-mybatis创建的事物管理器名称
个人微信公众,经常更新一些实用的干货:原创 2020-02-08 13:31:51 · 160 阅读 · 0 评论 -
Spring-bean作用域
个人微信公众,经常更新一些实用的干货:原创 2020-02-08 13:30:55 · 78 阅读 · 0 评论 -
获取SpringBean对象工具类
#获取SpringBean工具类SpringBeanUtil代码如下:package com.meeno.wzq.util;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.con...原创 2020-02-08 13:30:23 · 140 阅读 · 0 评论 -
@ImportResource-SpringBoot使用xml配置Bean
#前言SpringBoot推荐使用注解的方式去声明bean,但还是提供了xml的方式去加载bean#一.创建要声明为bean的实体类WzqEntity.javapackage com;/*** @description:* @author: Wzq* @create: 2019-12-12 15:44*/public class WzqEntity { publi...原创 2020-02-08 13:29:52 · 304 阅读 · 0 评论 -
依赖注入@Autowired@Primary@Quelifier使用
@Autowired注入声明的SpringBean对象,根据一定的规则首先按照注入的类型去查找,如果没有找到安装注入的名称去匹配你要注入的属性名称,如果都没有找到启动项目时抛出异常,@Autowired(required = false) 表示没有找到注入对象时,不抛异常,注入null。@Primary如果有多个相同类型的SpringBean,我们可以使用@Primary注解,优先注入...原创 2020-02-07 18:51:23 · 1178 阅读 · 0 评论 -
@Profile 根据不同环境注入bean
介绍@Profile元注解是在不同的生产环境中,@Bean创建的SpringBean根据spring.profiles.active指定的环境不同创建不同环境的bean对象一.@Profile元注解需要配合spring.profiles.active一起使用二.首先在resources下创建三个配置文件image.pngapplication.properties:...原创 2020-02-07 18:49:56 · 900 阅读 · 0 评论 -
Spring Boot Bean的使用,@Repository,@Service,@Controller,@Component
前言在Spring MVC的时候,我们使用xml来配置bean,如今的Spring boot推荐我们使用元注解的发生,那就听Spring Boot的推荐,下面我就为大家来介绍下Spring Boot Bean的使用。声明为SpringBean的元注解@Repository注解:Dao层使用@Service注解:Service层使用@Controller注解:Controlle...原创 2020-02-07 18:49:21 · 409 阅读 · 0 评论 -
Spring boot注入配置为java静态属性
配置文件image.png注入静态变量image.png注意类上面有:@Component注解使用注入的静态变量image.png成功image.png个人微信公众,经常更新一些实用的干货:...原创 2020-02-07 18:48:27 · 245 阅读 · 0 评论 -
Spring Boot注入自定义properties文件配置
创建wzq.propertiesimage.pngwzq.properties注入User实体类中image.png@PropertySource(value = "classpath:wzq.properties",ignoreResourceNotFound = true)classpath:wzq.properties:配置文件路ignoreResourceNot...原创 2020-02-07 18:47:30 · 503 阅读 · 0 评论