自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (1)
  • 问答 (5)
  • 收藏
  • 关注

原创 RestTemplate响应结果转换

即他们的json是用大写字母开头的。如果直接使用。

2024-04-25 10:01:56 291

原创 springboot设置统一响应头——无效?接口无响应?

对接一个关联方系统,我这边需要提供几个接口。对方要求,这些接口有统一的响应格式,并且有。

2024-01-15 14:18:26 595 1

原创 SSE:后端向前端发送消息(springboot SseEmitter)

通过SSE,后端及时向前端发送消息。

2022-09-03 18:48:28 17012 13

原创 Knife4j文档请求异常:TypeError: n.forEach is not a function

Knife4j文档请求异常:TypeError:n.forEach is not a function

2022-06-23 14:13:47 6220

原创 减少if-else的使用——策略模式

减少if else策略模式使用策略模式问题减少if else:枚举法减少if else:享元模式总结代码是死的,人是活的。具体怎么使用还得看具体的场景。这里只是抛砖引玉。策略模式策略模式,不用多说,直接代码:定义一个策略接口:public interface Strategy { /** * 具体的策略,做某个事情 * * @author FYK */ void doSomething();}具体的策略类:public

2021-01-31 17:44:54 794 1

原创 SpringBoot中使用@Value取配置文件中的map配置

背景在springboot项目中,使用application.properties配置文件,然后需要配置一个map类型的配置,然后在程序的其他地方获取这个配置。配置内容fyk.db-script.check-sql.[1-FYK_PROPERTIES-DQL]=select case when exists(select 1 from all_tables t where t.TABLE_NAME = upper('fyk_properties')) then 1 else 0 end as resu

2020-08-09 18:44:00 17941 2

原创 SpringBoot项目启动时自动执行多个SQL脚本

目录背景解决方案注意补充说明背景有一个项目fyk-config,该项目需要在配置的时候,需要创建一个配置表(FYK_PROPERTIES),并且向该表中插入各个微服务的配置记录。解决方案在SpringBoot中,有一个DataSourceInitializer类,该类会在项目启动的时候,执行初始化脚本。具体代码如下:首先,在resources目录下,创建文件夹scritp/db,然后在db文件夹下,放入sql文件:然后,在项目中,写一个配置类:@Slf4j@Configurationpu

2020-08-09 16:57:07 2201 2

原创 SpringBoot中连接RabbitMQ报错An unexpected connection driver error occured

问题在SpringBoot中,连接RabbitMQ的时候,报错,错误信息大致如下:2020-08-08 14:42:01.812 ERROR 2780 --- [92.168.1.6:5672] c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occuredjava.net.SocketException: socket closed at java.net.SocketInputStr

2020-08-08 14:55:09 18071 2

原创 IDEA中使用maven插件dockerfile-maven-plugin制作并推送Docker镜像到私有仓库(Harbor)

目录背景dockerfile-maven-plugin插件制作镜像配置推送镜像到仓库问题背景用maven构建的父子工程。父工程下有多个子工程。现在要实现的功能是将某个项目打包制作为docker镜像然后推送到一个Docker镜像仓库(Harbor镜像仓库)。dockerfile-maven-plugin插件在父pom中,引入插件:<pluginManagement> <plugins> <plugin> &lt

2020-08-08 13:59:49 7282 7

原创 SpringBoot项目中,bootstrap.properties文件不生效

解决方案需要加入如下依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId></dependency>说明在开发微服务的时候,其他项目添加bootstrap文件都生效的,但是今天新建的一个项目,这个文件没有生效。原因该项目由于才在初始开发的阶段,无须加

2020-06-14 18:34:53 8140

原创 双括号初始化(匿名内部类初始化)

今天看到项目中有一段这样的代码://新建一个List并赋初值A、B、CArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C");}};一查资料,才明白,这种是双括号初始化,也就匿名内部类初始化。在通常使用集合的时候,是先new一个对象,...

2019-10-24 13:05:56 504

原创 SpringBoot定时任务

文章目录基于注解的方式基于接口的方式注解方式和接口方式,是可以在一个项目中共存的。基于注解的方式在启动类上,开启定时任务功能(加上@EnableScheduling注解):@EnableScheduling@SpringBootApplication@ComponentScan({ "com.boco.fyk.timer.**" })public class TimerAppli...

2019-10-12 00:07:08 159

原创 axios防重复提交

文章目录场景axios防重复提交思路具体实现补充场景用户在进行新增操作(比如新增菜单)。如果快速点击多次新增按钮,可能照成的情况就是新增了多条记录。一般可以通过在点击的时候,先禁用新增按钮,然后等本次操作完了,再解除禁用。不过,使用axios有更加优雅的实现方式。axios防重复提交思路先说下思路:在进行axios提交操作的时候,把本次请求做一个标记,保存到一个数组中。等请求结束了,就从...

2019-09-20 16:34:35 1677

原创 Oracle中,关于空值的问题

在oracle数据库中,空值是一个特殊的。比如要查询出一个表中,某个字段为空或者不为空的数据,不能直接用=或者<>,要使用is null或者is not null。以上可以说是一个常识性问题,一般都不会犯。不过,下面要说的问题,可能会被大多数人忽略:背景比如,在权限系统中,根据角色ID,要找出具有这个角色的用户和不具有这个角色的用户。所以,这里相关的表有fyk_user(用户表)...

2019-09-19 16:39:45 2678

原创 MyBatis中ResultMap的继承

假设有两个实体对象:A和B,其中B继承A。那么在定义B的ResultMap的时候,可以使用extends属性来继承A的ResultMap。示例有个实体对象FykUser:(get、set略)public class FykUser { private String id; private String loginName;}然后另一个实体对象FykUserVo,继承FykUs...

2019-09-19 15:25:59 4388 1

原创 MyBatis进行批次操作

文章目录批次操作补充在项目中,遇到这样一种情况,需要批量插入一些数据。在XML中配置的基本sql如下:<insert id="addMenuRole"> insert into fyk_role_menu (role_id, menu_id) values (#{roleId}, #{menuId})</insert>很显然,只要重复调用addMe...

2019-09-18 18:30:11 673

原创 MyBatis-plus:模糊查询

在使用MyBatis-plus的时候,一些基础的增删改查可以不用再自己写sql了:public interface UserDao extends BaseMapper<FykUser>{}就这样,就可以实现user表的增删改查了。模糊查询使用userDao.selectList(queryWrapper)方法,就可以查询出一个用户列表。如果需要模糊查询,代码如下:/...

2019-09-16 16:36:51 33707 5

原创 ES6 export命令和import命令

模块功能主要由两个命令构成:export和import。一个模块就是一个单独的文件,这个文件中的变量,外部是无法获得的。如果想在外部获得这个变量,只有在文件内部使用export导出这个变量,然后在外部import导入这个变量。export命令export可以导出一些变量、函数、数组、常量等。例如,在variable.js文件中,定义了两个变量:a、b,那么要在外部使用者两个变量,可以使用e...

2019-09-09 14:35:38 944

原创 ES6 const命令

const声明一个只读的常量。一旦声明,常量的值就不能改变。这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。const的作用域与let命令相同:只在声明所在的块级作用域内有效。const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。const声明的常量,也与let一样不可重复声明。const实际上保证的,并不是变量的值不得改动,而是变量...

2019-09-09 13:35:34 142

原创 ES6 let命令

文章目录代码块中有效变量提升暂时性死区let命令用来声明变量,使用方式与var命令一样。但是二者的作用有区别:let声明的变量只在let声明的代码块中有效,且不存在变量提升。另外,在相同的作用域内,使用let声明同一个变量是不允许的。代码块中有效如下代码,输出的i为10,说明使用var变量声明的变量,就算是离开了代码块,依然是有效的。for(var i = 0; i < 10; ++...

2019-09-09 13:26:23 203

原创 ES6 Promise 对象用法总结

文章目录特点创建实际的例子Promise.resolve方法,Promise.reject方法Promise用来传递异步操作的消息,Promise 对象代表一个异步操作。特点1、Promise对象的状态不受外界影响,也就是说,只有异步操作的结果可以改变他的状态,其他操作都无法改变这个状态;总共有三种状态:pending(等待):初始状态,不是成功或失败状态。fulfilled(完成):...

2019-09-05 10:27:58 431

原创 Vue2.x中,父子组件通信

文章目录父传子对象:注意单向数据子传父有这么一个情况,在父组件中,使用了子组件,现在想将父中的某些值传给子,或者将子中的某些值传给父。为了解决以上问题,通常采用的是props来实现。props的值可以是两种:字符串数组、对象;父传子这里首先介绍数组的情况:在子组件中,定义props:<template> <div>{{parentStr}}</div&...

2019-09-04 16:22:26 293

原创 在SpringBoot中使用AOP——通知中的参数

文章目录使用JoinPoint获取自动获取在后置返回通知中获取返回值在后置异常通知中获取异常本文基于在SpringBoot中使用AOP获取被被通知方法参数并传递给通知方法,主要有两种方式:使用JoinPoint获取:Spring AOP提供使用org.aspectj.lang.JoinPoint类型获取连接点数据,任何通知方法的第一个参数都可以是JoinPoint(环绕通知是Proceed...

2019-09-02 17:47:06 3326

原创 在SpringBoot中使用AOP

文章目录声明切面类声明切入点切入点指示符声明通知环绕通知通知顺序通知参数完整代码声明切面类切面,通俗的讲就是:在哪干和干什么集合;定义切面类,就是编写一个类,在类上使用注解:@Aspect;@Component注解是要将这个类交由spring管理;@Aspect@Componentpublic class ControllerLog {}声明切入点切入点,通俗的讲就是:在哪...

2019-09-02 16:35:36 312

原创 SpringBoot异步任务(多线程)

配置类@Configuration@EnableAsyncpublic class AsyncConfig implements AsyncConfigurer { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor()...

2019-08-30 15:06:25 3579

原创 SpringCloud微服务——Feign调用其他服务

前言在微服务中,有多个服务:A、B、C等等。如果前端访问A服务做一个业务,其中一个环节是需要B服务的支持,也就是在A服务中,要调用B服务,这个时候,可以使用Feign来实现。假定A调用B,则A为客户端,B为服务端。服务端的写法,不用说了,就和Spring MVC中Contoller的代码写法一样。以下就介绍客户端的写法。添加jar包这里只是给出了feign的包,其他的依赖包根据项目而定:&...

2019-08-29 18:18:21 2825

原创 Feign客户端连接超时:feign.RetryableException: Read timed out executing xxxxxxxxxx

在Feign客户端调用服务端的时候,很容易出现连接超时的错误,解决的方式是,在配置文件中,加入:feign.client.config.default.connect-timeout=20000feign.client.config.default.read-timeout=20000...

2019-08-29 16:59:15 13493

原创 Feign客户端指定为Get方式,但是服务端接收的请求却为Post方式

文章目录背景问题解决方案背景在服务端,暴露了一个接口,是get方式请求的。然后客户端的请求代码如下:@FeignClient("fyk-business-cxf/testQqOnline")public interface QqOnlineFeignClient { @GetMapping("/qqCheckOnline") public String qqCheckOnline(St...

2019-08-29 16:40:13 2097

原创 (SpringCloud中的WebService)SpringBoot整合CXF——客户端

生成客户端代码首先下载CXF的压缩包:配置环境变量:首先,在环境变量中增加如下变量:然后添加到Path变量中:生成客户端代码:wsdl2java -d F:\fyk-plat\fyk-business\fyk-business-ws\fyk-business-cxf\src\main\java -p com.boco.fyk.cxf.cxfclient.qqonline -en...

2019-08-29 14:46:48 2917

原创 wsdl2java生成CXFjava客户端代码报错:由于 accessExternalSchema 属性设置的限制而不允许 'file' 访问, 因此无法读取方案文档 'xjc.xsd'

报错信息Exception in thread "main" java.lang.AssertionError: org.xml.sax.SAXParseException; systemId: jar:file:/D:/apache-cxf/apache-cxf-2.7.16/lib/jaxb-xjc-2.2.6.jar!/com/sun/tools/xjc/reader/xmlschema/...

2019-08-29 11:17:58 1563

原创 CXF获取出入站报文

在SpringBoot整合CXF——服务端中,是直接将报文打印出来的,这个适合在调试的时候使用,但是在实际中,期望的是将报文保存下来。直接上代码:@Configuration@Slf4jpublic class CxfConfig { @Bean(name = Bus.DEFAULT_BUS_ID) public SpringBus springBus() { LoggingFe...

2019-08-16 16:22:23 2959

原创 (SpringCloud中的WebService)SpringBoot整合CXF——服务端

文章目录引入jar包修改配置文件CXF配置类WS接口编写测试在SpringBoot和SpringCloud微服务中,整合CXF都是一样的。直接上代码:引入jar包这里只给出了CXF先关的jar包,项目中的其他jar依赖略。<!-- cxf start --><dependency> <groupId>org.apache.cxf</groupI......

2019-08-16 16:16:00 9529 10

原创 SpringBoot之ApplicationRunner(一个spring容器启动完成执行的类)

在项目中,可能会遇到这样一个问题:在项目启动完成之后,紧接着执行一段代码。在SpringBoot中,提供了一个接口:ApplicationRunner。该接口中,只有一个run方法,他执行的时机是:spring容器启动完成之后,就会紧接着执行这个接口实现类的run方法。@Componentpublic class PublishEndpoint implements Application...

2019-08-16 13:32:46 17278

原创 SpringCloud微服务——配置中心config(oracle数据库实现方式)

客户端pom文件中,引入jar包:<!-- spring cloud config start --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-client</artifactId&gt...

2019-08-15 15:05:38 3932

原创 SpringCloud微服务——基于security+oauth2的安全保护(七):非JWT方式下获取登录人信息

在上一个文章中(JWT方式下获取登录人信息),介绍了在JWT方式下获取登录人信息的方式。这里再介绍使用jdbc和redis存储token的方式下,获取登录人信息。授权服务改造授权服务的改造很简单,因为要写的代码,在JWT方式下获取登录人信息中已经写了,所以,只需要在授权服务配置类OAuth2AuthorizationConfig中做一下调整:@Overridepublic void con...

2019-08-15 13:57:30 1941 1

原创 SpringCloud微服务——基于security+oauth2的安全保护(六):JWT方式下获取登录人信息

文章目录添加额外的信息授权服务改造添加CustomTokenEnhancer类:授权服务配置类:OAuth2AuthorizationConfig改造资源服务改造新增CustomerAccessTokenConverter类:资源服务配置类改造:OAuth2ResourceConfig公共方法在使用JWT存储token的时候,由于授权服务把token给了资源服务之后,资源服务就不会再访问授权服务...

2019-08-14 17:58:38 4427

原创 security整合oauth2(jwt非对称加密):For MAC signing you do not need to specify the verifier key separately...

在进行security+oauth2整合,使用jwt非对称加密存储token的时候,出现了一个错误;org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.oauth2.config.annotatio...

2019-08-14 14:23:57 5195

原创 SpringCloud微服务——基于security+oauth2的安全保护(五):授权服务之JWT

使用JwkTokenStore存储token的时候,需要使用jks文件作为Token加密的密匙。本文使用java的keytool生成jks文件(首先要安装好JDK环境)。首先CMD打开终端窗口,要生成在哪个目录,就进入哪个目录,然后执行:keytool -genkeypair -alias fyk-jwt -validity 365 -keyalg RSA -dname "CN=fyk,OU...

2019-08-14 14:11:41 3116

原创 报错:java.lang.NoSuchMethodError: org.springframework.data.redis.connection.RedisConnection.set([B[B)V

在spring security oauth2中,授权服务使用redis存储token的时候,报错:java.lang.NoSuchMethodError: org.springframework.data.redis.connection.RedisConnection.set([B[B)V这说明版本有问题,解决方案是,将oauth2的版本升级到2.3.3,即在pom文件中,加入:<...

2019-08-13 12:54:47 10473 7

原创 SpringCloud微服务——基于security+oauth2的安全保护(四):授权服务之redis存储token

文章目录加入jar包加入配置修改授权服务配置问题在SpringCloud微服务——基于security+oauth2的安全保护(二):授权服务该文中,存储token信息使用的是jdbc的方式。这里介绍一种使用redis存储的方法(本文是建立在授权服务之上的,以它为基础改造)。为了多样化,就不删除以前的功能了,可以通过配置来决定使用哪个。加入jar包以前的jar包不要动,加入redis的就可...

2019-08-13 12:46:02 3845

apache-cxf-3.3.3.zip

CXF生成客户端代码所需要的压缩包。直接解压,配置好环境变量即可使用!

2019-08-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除