![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring boot
克里斯蒂亚诺龙
坚持记,好好记
展开
-
DynamicDataSource 数据源连接混乱
DynamicDataSource 多数据源配置,不多说了,初始化几个数据源,继承AbstractRoutingDataSource重写里面的determineCurrentLookupKey()方法。但是在一个servie方法中多次调同mapper的方法时,比如mapper.a() mapper.b() mapper.c(),数据源切换注解在service上。请求进来,在调用完a方法后,调用b方法时,数据源又切回了默认数据源。导致异常。尝试很久,各种debug,浪费了一天,也没找到办法。后来偶然原创 2021-03-12 12:41:54 · 1187 阅读 · 0 评论 -
springboot2.x The character [_] is never valid in a domain name
访问springcloud工程, springboot版本为2.1.15 ,使用域名访问接口报400但是直接用ip不报错。发现是集成的tomcat版本不支持域名下划线。大约是8.5.31以后的版本不支持带下划线的域名,但是也没办法降低版本了,会有很多冲突。先搁置。...原创 2021-01-29 16:41:52 · 1104 阅读 · 0 评论 -
spring filter中修改头信息和请求参数的wrapper
package com.chinamobile.bcsec.common.tool.wrapper;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import java.util.*;/** * HttpServletRequest包装类,用于在filter中增删改请求参数和header * @author sola * */public cl原创 2020-09-18 14:26:04 · 1153 阅读 · 0 评论 -
## springboot和springcloud版本对照表
原创 2020-08-20 14:55:10 · 152 阅读 · 1 评论 -
## springboot和springcloud版本对照表
springboot和springcloud版本对照表原创 2020-08-20 14:53:08 · 827 阅读 · 0 评论 -
springboot2结合camel如何关闭xml的route
camel.springboot.xml-routes=false 这样就行了,启动,或者跑测试类不会去加载xml文件了,不然一直报错。原创 2020-05-29 14:34:19 · 405 阅读 · 0 评论 -
springboot项目中后台使用CommonsMultipartFile接收上传文件报错
旧的springMVC项目中使用CommonsMultipartFile类型来接收上传的文件,现在进行迁移,框架使用springboot2.0+ ,始终无法接收请求,后定位到是MultipartFile到CommonsMultipartFile的类型转换错误。查资料得知,springboot对multipart类型的接收,默认为用MultipartFile接收的,而接收为MultipartFil...原创 2019-12-31 09:30:29 · 2116 阅读 · 0 评论 -
Executors创建线程池
两个静态方法:ExecutorService exec = Executors.newCacheThreadPool(); 这个方式会为每个任务创建一个线程。ExecutorService exec = Executors.newFixedThreadPool(10); 创建10个线程的线程池。执行某个实现Runable接口的类TestThread:exec.execute(ne...原创 2019-04-30 10:43:32 · 140 阅读 · 0 评论 -
docker-compose启动mysql
version: '3.0'services: mysql: container_name: mysql environment: MYSQL_ROOT_PASSWORD: 123456 image: mysql:5.7 restart: always volumes: - /apps/svr/docker/docker-c...原创 2019-05-05 11:21:41 · 1769 阅读 · 0 评论 -
Eureka 的一些 配置
服务端 eureka.serverenable-self-preservation: true自我保护模式,当出现出现网络分区、eureka在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka 也不会将其删除,默认为trueeviction-interval-timer-in-ms: 60000eureka server清理无效节点的时间间隔,默认6...原创 2019-04-24 16:44:53 · 521 阅读 · 0 评论 -
OAuth2.0的资源服务器中,如果无权访问,跳转到自定义页面。
使用过滤器,使用自定义登录界面,全部失败。无权访问,OAuth2.0是输出一个XML格式的。下面是有效配置:自定义类实现AuthenticationEntryPoint 接口,设置跳转逻辑:/** * 自定义个一个authenticationEntryPoint,实现如果无访问权限跳转到登录页面 * @author sola */public class AuthException...原创 2019-04-22 17:43:05 · 2750 阅读 · 4 评论 -
OAuth2.0过滤器链,如何在鉴权之前自定义传入一个token。
第5个过滤器时负责取到token进行验证。一、解析查找 access_token1、OAuth2AuthenticationProcessingFilter.tokenExtractorpublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, Se...原创 2019-04-22 17:39:06 · 7181 阅读 · 2 评论 -
docker-compose启动redis并且可以远程连接
拉取一个redis镜像,要知道版本号,我的时5.0.4。这个跟关键,涉及到之后使用的redis.conf,要使用相同版本的。docker-compose.yml:version: '3.0'services: redis: image: registry.cn-hangzhou.aliyuncs.com/safebox/redis:5.0.4 container_name...原创 2019-04-26 16:19:28 · 4341 阅读 · 0 评论 -
工具类:把一个对象转换成hashmap类型
public static Map<String, Object> objectToMap(Object obj) { if (obj == null) { return null; } Map<String, Object> map = new HashMap<String, Object>(); try { Field[] de...原创 2019-04-26 11:03:33 · 7850 阅读 · 4 评论 -
springsecurity或者oauth2中设置某个开头的路径拦截,并且放行某个子路径
@Override public void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() .antMatchers("/web/user/**").permitAll() ...原创 2019-04-16 17:47:35 · 10382 阅读 · 6 评论 -
docker tag之后会有两不同名称的相同镜像并且镜像id也是一样的,如何删除
如下: docker rmi 10.144.71.78:5000/centos7-jdk8-cn:v1原创 2019-04-09 16:00:25 · 7134 阅读 · 0 评论 -
springboot1.5升级到2.X 导致config-server报错
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.springframework.cloud.config.server.config.CompositeConfiguration’: Unsatisfied dependen...原创 2019-04-03 15:29:07 · 464 阅读 · 0 评论 -
查看docker容器占用内存
ps -ef|grep 容器Id[root@wentao-2 order]# ps -ef|grep 3a61cb3fd4f6root 7358 12956 0 09:14 ? 00:00:00 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.l...原创 2019-04-09 09:30:41 · 12356 阅读 · 0 评论 -
单例模式多种写法
JAVA单例模式的七种写法第一种(懒汉,线程不安全):Java代码 收藏代码public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (inst...原创 2019-04-30 11:21:34 · 122 阅读 · 0 评论 -
basic auth中,输入的用户名和密码怎么转换成那段字符串的。比如:Basic xxxxxxxxxxxxx
图1图2图1输入用户名密码,发送请求的时候,会转换成图2请求头: Basic d2ViQXBwOjEyMzQ1Ng== 。d2ViQXBwOjEyMzQ1Ng==这一段是怎么得来的呢?这事base64加密,具体逻辑如下:byte[] b= new byte[0]; try { b = ("webApp"+":"+"123456").getByt...原创 2019-05-09 09:20:48 · 6097 阅读 · 1 评论 -
运行idea启动项目突然报错,之前还可以启动,没有任何更改,突然报错TypeRepr$ArrayType cannot be cast to
运行idea启动项目突然报错,之前还可以启动,没有任何更改,突然报错:java.lang.ClassCastException: org.jetbrains.jps.builders.java.dependencyView.TypeRepr$ArrayType cannot be cast to org.jetbrains.jps.builders.java.dependencyView.Ty...原创 2019-05-10 09:16:49 · 1929 阅读 · 2 评论 -
TimeStamp转化成毫秒数,毫秒数转化成TimeStamp
import java.sql.Timestamp;Timestamp timestamp= new Timestamp(System.currentTimeMillis());long time = timestamp.getTime();long nexttime=time+86400000;Timestamp timestamp1 = new Timestamp(nexttime);...原创 2019-08-28 16:19:29 · 4412 阅读 · 0 评论 -
harbor在某些docker版本下,jobservice服务启动失败
harbor镜像是1.5.0版本,docker 13.1 docker 18.09.4可以运行,docker 18.06.0 和 19.03.01 运行时,jobservice服务无法启动。原创 2019-08-01 13:27:59 · 1595 阅读 · 1 评论 -
spingboot 后台用对象接受参数时,如何限制参数,比如正则,比如非空之类
import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import javax.validation.c...原创 2019-07-16 14:55:41 · 739 阅读 · 0 评论 -
mysql报错:Cause: java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (ut
Cause: java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ‘like’; uncategorized SQLException; SQL state [HY000]; error code [1...原创 2019-06-24 14:30:18 · 1838 阅读 · 0 评论 -
java 中导入https访问的ca证书
cd /usr/java/jre1.8.0_73/lib/security/keytool -import -alias 证书名 -keystore cacerts -file 证书路径/test.cer -trustcacerts此时命令行会提示你输入cacerts证书库的密码,你敲入changeit就行了,这是java中cacerts证书库的默认密码,...原创 2019-06-24 10:17:15 · 2584 阅读 · 0 评论 -
启动elk容器报错,显示是内部启动es出错vm.max_map_count [65530] is too low
Docker安装 elasticsearch 报错max virtual memory areas vm.max_map_count [65530] is too low使用下面命令解决:vi /etc/sysctl.conf添加 一行 vm.max_map_count=655360加载参数sysctl -p...原创 2019-06-26 10:44:41 · 3635 阅读 · 0 评论 -
wait-for-it.sh脚本控制docker-compose启动顺序详解
1. 把脚本复制到镜像内Dockerfile中COPY wait-for-it.sh /usr/local/bin/2.在docker-compose.yml中修改添加entrypoint: “bash /usr/local/bin/wait-for-it.sh mysql:3306 – java -jar /safebox-eureka.jar”示例:*version: ‘2.4’...原创 2019-06-25 10:55:49 · 5906 阅读 · 0 评论 -
RestTemplate请求的超时设置
//设置rest请求的超时时间 // SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory(); // simpleClientHttpRequestFactory.setConnectTimeout(...原创 2019-06-12 14:42:07 · 7868 阅读 · 0 评论 -
docker image制作中启动参数的配置:Springboot根据指定profile启动jar包
启动jar包根据不同的环境(dev,testing,prod),配置不同profile启动java -jar your_jar_name.jar --spring.profiles.active=prod在创建docker镜像中配置ENTRYPOINTFROM java:8 MAINTAINER *********@gmail.com ADD your_jar_name.jar ...原创 2019-05-23 15:23:39 · 5657 阅读 · 1 评论 -
加密解密工具集
package com.sh.springboottdemo2.util;import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.Mac;import javax...原创 2019-05-10 10:30:37 · 1411 阅读 · 0 评论 -
服务器获取请求方真实ip地址的方法
public String getRemortIP(HttpServletRequest request) { if (request.getHeader("x-forwarded-for") == null) { return request.getRemoteAddr(); } return request.getHeader("x-forwarded-for"); ...原创 2019-05-10 10:16:38 · 4004 阅读 · 0 评论 -
feign使用熔断器,直接熔断
项目中配置熔断器,开启之后直接熔断走fallback,明明下游服务可用!!!!各种debug,看源码,差资料,无解。debug只是显示阻塞。后来我再fallback方法中手工抛了个异常RuntimeException,终于在控制台得到异常信息,指向到某个过滤器。@Override public String test() { System.out.println("进...原创 2019-03-29 13:05:08 · 9260 阅读 · 10 评论 -
docker容器部署springcloud微服务+config-server+hosts的坑
docker容器启动微服务可以使用-v /etc/hosts:/etc/hosts 这种方式使得容器内的hosts和宿主机的hosts同步从而获得hosts。如果不适用config-server,完全不存在问题。spring: application: name: user-manage cloud: config: profile: dev ...原创 2019-04-08 14:34:21 · 2706 阅读 · 2 评论 -
mapper中查询语句 where 后条件全都可以为null的时候怎么办? 待解决
selectfrom os_biz_sec_waf_instance obwwhereobw.CUSTOMER_ID=#{customerId}AND obw.IS_DELETE=#{isDelete}AND obw.DESCRIPTION LIKE CONCAT(CONCAT(’%’,#{description}),’%’)AND obw.ID=#{id,jdbc...原创 2019-01-17 16:31:28 · 3957 阅读 · 0 评论 -
@JsonInclude(JsonInclude.Include.NON_NULL)
属性值为null的不参与序列化原创 2019-01-02 09:19:15 · 1071 阅读 · 0 评论 -
使用feign中会报错,某参数嵌套异常
报错:Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘com.chinamobile.bcsec.feign.client.leakscan.LeakScanClient’: FactoryBean threw exception on objec...原创 2019-01-04 14:49:58 · 1281 阅读 · 0 评论 -
@RequestParam(value = "xxxxxxx",required = false) int n 这种语法是会报错的,声明了int类型,就是不可能是null了。
@RequestParam(value = “xxxxxxx”,required = false) int n 这种语法是会报错的,声明了int类型,就是不可能是null了。原创 2018-12-18 17:11:56 · 1958 阅读 · 0 评论 -
spring boot 发送email
Spring Boot使用JavaMailSender发送邮件Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot中也提供了相应的自动化配置。这篇文章主要讲如何在Spring Boot中使用JavaMailSender发送邮件。发送邮件1,在pom.xml中引入spring-boot-starter-mail依赖:复制代码<grou...转载 2018-12-18 09:22:25 · 535 阅读 · 0 评论 -
FeignClient中每一个@RequestParam 都要设置value,否者报错
@FeignClient(name = “WAF”)public interface WafClient {@GetMapping(value = "/existHistory")Boolean existHistoryInstance(@RequestParam("userID")String userID);原创 2018-12-28 10:34:01 · 7674 阅读 · 0 评论