JavaEE-Spring
文章平均质量分 82
QC班长
CSDN程序员学院讲师,CSDN内容合伙人,全栈领域优质创作者,高级瑜伽导师-阿斯汤加瑜伽练习者,透过IT看世界!
展开
-
SpringBoot、SpringCloud使用webFlux的WebClient上传文件、下载文件的实现以及下载中报错Exceeded limit on max bytes to buffe解决方法
从 Spring 5 开始,Spring 中全面引入了 Reactive 响应式编程。而 WebClient 则是 Spring WebFlux 模块提供的一个非阻塞的基于响应式编程的进行 Http 请求的客户端工具。由于 WebClient 的请求模式属于异步非阻塞,能够以少量固定的线程处理高并发的 HTTP 请求。因此,从 Spring 5 开始,HTTP 服务之间的通信我们就可以考虑使用 WebClient 来取代之前的 RestTemplate。原创 2023-07-05 12:42:33 · 2506 阅读 · 0 评论 -
Java集合对象拷贝,使用JDK 8 的函数式接口封装org.springframework.beans.BeanUtils工具类实现
需求描述:在进行数据同步时需要把SQLserver的数据表同步到MySQL的数据库表,有的表字段一样,但有的却字段类型不一样,需要进转换单独的转换,所以写了一个工具类实现,少写代码。1、定义一个函数式接口函数式接口里包含默认方法,这里我们定义默认回调方法。2、封装一个工具类BeanUtilCopy.java通过如上方法,基本实现了集合的拷贝,但是从返回结果我们可以发现:属性不同的字段无法拷贝。...原创 2022-08-14 16:11:33 · 1498 阅读 · 0 评论 -
Swagger配置API接口文档参数说明、返回值说明
1、实体类注解@ApiModel(value = "统计查询VO对象")2、字段注解@ApiModelProperty(value = "区域代码")例子3、Controller类注解@Api(value = "ibestidea-com", tags = "统计查询接口")4、Controller类的方法注解@ApiOperation(value = "流量统计", resp原创 2022-07-12 20:25:55 · 8560 阅读 · 0 评论 -
SpringBoot 2.x.x以上版本配置SSL开启HTTPS访问,HTTP自动转HTTPS
1/生成证书直接使用java自带的命令keytool来生成,生成命令如下:keytool -genkey -alias server -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650各个参数的含义:0.-alias 别名1.-storetype 指定密钥仓库...原创 2019-12-26 00:38:44 · 1281 阅读 · 2 评论 -
SpringBoot 中默认可以使用多个@RequestBody的接收参数吗?报I/O error while reading input message错怎么办?
最近的SpringBoot项目中post提交需要传多个参数,于是就凭直觉在方法里写了两个参数接收前端传过来的JSON对象(@RequestBody A a, @RequestBody B b),但是报错后才发现问题所在。报错内容如下:I/O error while reading input message; nested exception is java.io.IOExcep...原创 2019-12-02 17:06:21 · 8569 阅读 · 0 评论 -
SpringBoot2.1.x报错循环依赖问题解决方法
最近的springboot项目开发时运行没问题,打包运行时报错:抛出BeanCurrentlyIn CreationException异常:Requested bean is currently in creation: Is there an unresolvable circular reference? 查了下原因是循环依赖问题。什么是循环依赖?当我们有两个(当然也可能是多个)类...原创 2019-02-12 15:28:46 · 8365 阅读 · 7 评论 -
SpringBoot2.1.x在启动后调用一次的4种方法,可以用于定时任务触发、数据初始化、初始化系统参数、文件初始化。
最近在做的一个SpringBoot项目需要工程启动后,查询数据库定时任务表配置信息,触发定时任务,查了一下SpringBoot2.X可以实现的一些方法,可根据不同使用场景使用,具体如下:1、实现CommandLineRunner接口2、实现ApplicationRunner接口3、实现ApplicationListener接口4、使用@PostConstruct 注解5、实现I...原创 2019-01-28 14:04:10 · 3982 阅读 · 0 评论 -
SpringBoot2.1.x多线程池(ThreadPoolTaskScheduler)无法用@Autowired 注入解决方法,无需用工具类获取Bean
最近在做的一个SpringBoot项目用到了定时任务管理,就用ThreadPoolTaskScheduler做动态添加修改删除定时任务,但在业务操作时线程池里取不到Bean对象,一直报空指针异常,最后发现注入的方式不对,通过下面这种方式注入是取不到Bean对象的。 @Autowired private AccountAPIService accountAPIService;...原创 2019-01-28 13:24:03 · 5170 阅读 · 6 评论 -
spring事务-说说Propagation及其实现原理
前言spring目前已是java开发的一个事实标准,这得益于它的便利、功能齐全、容易上手等特性。在开发过程当中,操作DB是非常常见的操作,而涉及到db,就会涉及到事务。事务在平时的开发过程当中,就算没有注意到,程序正常执行不会有副作用,但如果出现了异常,而又没有处理好事务的话,可能就会出现意想不到的结果。spring在事务方面进行了各种操作的封装,特别是声明式事务的出现,让开发变得更加的舒转载 2017-03-16 16:03:13 · 2160 阅读 · 0 评论 -
@Component、@Repository、@Service、@Controller、@Scope("prototype")区别
@Repository、@Service、@Controller 和 @Component 将类标识为Beanspring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能原创 2017-03-16 15:24:34 · 5117 阅读 · 0 评论 -
Java三大器之拦截器(Interceptor)的实现原理及代码示例
1,拦截器的概念 java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作。目前,我们需要掌握的主要是Spring的拦截器,Stru转载 2017-03-15 10:36:17 · 6746 阅读 · 0 评论 -
Spring中@Autowired注解、@Resource注解的区别
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和原创 2017-03-14 14:38:50 · 328 阅读 · 0 评论 -
使用spring @Scheduled注解运行定时任务
使用spring @Scheduled注解运行定时任务,经框架使用quartz框架运行定时调度问题,配置太麻烦、每一个调度都须要多加在spring的配置中、能不能降低配置的量从而提高开发效率、近期看了看spring的 scheduled的使用注解的方式进行调度、感觉非常方便、起码配置的东西少了非常多首先要配置我们的spring.xmlxm原创 2017-03-17 14:57:58 · 961 阅读 · 0 评论 -
如何用Spring将Service注入到ServletContextListener中
新建一个类SpringContextUtil.java:package com.shiyu.client.frame.utils;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;原创 2016-10-19 14:48:53 · 2496 阅读 · 0 评论 -
Spring destroy-method="close"的作用
destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.原创 2016-09-08 17:07:03 · 418 阅读 · 0 评论 -
理解Spring 容器设计理念
概述Spring是为了解决企业应用程序开发复杂性而创建的开源框架,书店上关于Spring的书籍汗牛充栋,网上相关的文章连篇累牍,其中有很多写的很不错的,有入门例子的,有问题解决方案的,有环境设置的,有源代码分析的,有spring与其他开源系统集成的,不一而足。本文通过生活白话,不拘泥于Spring源代码和专业术语的束缚,不拘泥于具体的实现细节,类比介绍Spring容器的宏观的设计理念。原创 2016-09-07 16:01:29 · 4076 阅读 · 0 评论 -
理解IoC及控制反转
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。早在2004年,Martin Fowler就提出了原创 2016-09-07 15:54:36 · 440 阅读 · 0 评论 -
什么是事务
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。 针对上面的描述可以看出,事务的提出主要是为原创 2016-09-07 13:16:55 · 423 阅读 · 0 评论 -
今天在使用spring进行文件下载是,总报错: java.lang.IllegalStateException: getOutputStream() has already been calle
解决办法: 把对应的action的返回设置为空,即可轻松解决。例如: @ActionAnnotation(name = "生成结婚报告文档并下载", group = "查询") public ModelAndView createMarriage(HttpServletRequest request, HttpServletResponse response)原创 2016-08-16 13:25:39 · 2966 阅读 · 0 评论