
Java
wangooo
这个作者很懒,什么都没留下…
展开
-
pdfbox读取pdf文档
pdfbox原创 2023-09-24 20:45:17 · 617 阅读 · 0 评论 -
spring resttemplate get请求支持body
pom中添加依赖<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version></dependency>RestTemplate,默认用的 HttpComponentsClientHttpRequestF原创 2021-10-16 22:17:26 · 1362 阅读 · 0 评论 -
java HmacSHA1加密
public static byte[] hmacSha1Encrypt(String encryptText, String encryptKey) { try { byte[] text = encryptText.getBytes("UTF8"); byte[] keyData = encryptKey.getBytes("UTF8"); SecretKeySpec secretKey = new Se...原创 2021-10-16 21:52:00 · 817 阅读 · 0 评论 -
java随机生成6位数
生成6位随机数,仅只有6位(int)((Math.random()*9+1)*100000)Math.Random() 函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0) 的左闭右开区间。原创 2021-10-15 21:45:05 · 5492 阅读 · 0 评论 -
@RequestParam
@RequestParam 接收的参数是来自requestHeader中,即请求头。通常用于GET请求。1、findUser(String name)2、findUser(@RequestParam String name)3、findUser(@RequestParam("userName") String name)第一种如果没有name 参数不会报错,第二种没有name 参数会报错,(也可以设置required = false),第三种跟第二种的区别是name 参数换为user原创 2021-09-19 22:15:35 · 969 阅读 · 0 评论 -
java calendar获取月份 需加1
Calendar calendar = Calendar.getInstance();int y = calendar.get(Calendar.YEAR);int m = calendar.get(Calendar.MONTH) + 1Calendar 获取的月份是从 0 开始的,0代表一月份。原创 2021-09-13 13:58:19 · 1345 阅读 · 0 评论 -
Spring Boot 的@ConditionalOnProperty注解
在Spring Boot的源码中,比如涉及到Http编码的自动配置、数据源类型的自动配置等大量的使用到了@ConditionalOnProperty的注解。@ConditionalOnProperty注解源码:@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.TYPE, ElementType.METHOD })@Documented@Conditional(OnPropertyCondition.class)public @原创 2021-08-28 14:31:01 · 378 阅读 · 0 评论 -
OpenFeign Feign Ribbon
OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验。OpenFeign的前身是Feign,OpenFeign是SpringCloud在Feign的基础上支持了Spring MVC的注解,并通过动态代理的方式产生实现类来做负载均衡并进行调用其他服务。使用 Ribbon+RestTemplate 时,利用了RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。在原创 2021-08-28 14:25:34 · 482 阅读 · 0 评论 -
feign启用httpclient、okhttp
openfeign 默认启用 httpclient。openfeign 默认启用 ribbon。所以从 openfeign的 ribbon 下的HttpClientFeignLoadBalancedConfiguration源码中可以看出。加了注解@ConditionalOnProperty,在没有配置feign.httpclient.enabled 时,默认为true。@ConditionalOnProperty( value = {"feign.httpclient.ena..原创 2021-08-28 11:05:50 · 2306 阅读 · 0 评论 -
feign 根据环境动态指定服务名
分布式系统中,网关层或应用层调用后端的微服务,大家普遍使用SpringCloud Feign去调用,过程简单方便。开发环境和测试环境共用一套nacos,通过服务提供方的serviceId加环境后缀作为区分,比如基础信息服务其开发环境serviceId为 baseinfo-dev,测试环境为 baseinfo-test。每次服务提供方发布的时候,会根据发布环境,手动的更改serviceId。消费方feign调用时,直接通过@FeignClient(name = "baseinfo-dev")转载 2021-08-27 10:50:37 · 10358 阅读 · 1 评论 -
Spring Boot日志框架 slf4j 与 log4j、logback
Spring Boot支持Log4j2、Lockback作为日志框架。如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。spring-boot-starter启动器包含spring-boot-starter-logging启动器并集成了slf4j日志抽象及Logback日志框架。1.slf4j(Simple logging Facade for Java)它是把不同的日志系统的实现进行了具体的抽象化,只提供了统一的日志使用接口,使用时只需要按照转载 2021-08-26 10:49:51 · 712 阅读 · 0 评论 -
js 正则密码
最少包含1个大写字母、1个小写字母、1个数字、一个特殊字符(英文)、长度10到20。let pattern = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[~!@#$%^&*()_+{}|":<>?`[\];',.\/])[\da-zA-Z~!@#$%^&*()_+{}|":<>?`[\];',.\/]{10,20}$/;...原创 2021-08-19 11:14:26 · 641 阅读 · 0 评论 -
mybatis-plus and or 复合查询
AND 嵌套例:and(i -> i.eq("name", "李白").ne("status", "活着"))--->and (name = '李白' and status <> '活着')OR 嵌套例:or(i -> i.eq("name", "李白").ne("status", "活着"))--->or (name = '李白' and status <> '活着')nested正常嵌套 不带 AND 或者 OR例...原创 2021-07-01 17:15:29 · 1773 阅读 · 0 评论 -
RestTemplate 超时值
使用Spring的RestTemplate时,默认的超时值是无限的。默认情况下,RestTemplate使用SimpleClientHttpRequestFactory,然后使用HttpURLConnection。默认情况下为HttpURLConnection的超时时间为0 - 即无限的,除非它已经被设置这些属性:-Dsun.net.client.defaultConnectTimeout=TimeoutInMiliSec -Dsun.net.client.defaultReadTimeou原创 2021-07-01 16:52:17 · 15280 阅读 · 2 评论 -
fastjson list enum
List转JsonList<User> users = new ArrayList();String str = JSON.toJSONString(users); // List转jsonJson 转List 方法一String json = ""; //获取的Json数据List<User> users = JSON.parseObject(json, new TypeReference<List<User>>(){}); // Jso原创 2021-06-22 15:16:34 · 409 阅读 · 0 评论 -
@Slf4j 日志输出
当前日志为logback,在使用日志输出时,如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class);就可以用注解@Slf4j。(idea需装lombok插件)如果是基于SpringBoot,因为默认加入了Slf4j-api和logback的依赖,所以只需要添加lombok的依赖即可。类上面添加@Sl4j注解,然后使用log打印日志...原创 2021-05-23 22:20:36 · 442 阅读 · 0 评论 -
Spring RestTemplate发送请求时 自动对参数进行urlencode的问题
我们用Java开发项目时,发送请求都是用的RestTemplate。最近和其他部门合作时,我们需要请求他们的一个http接口。两边协议都确定好后,发现联调不通。后来发现是我们这边发出的请求,到达对方那边时,他们接收到的是经过了urlencode后的结果,通过wireshark抓包也看到确实发出的请求是被urlencode的。我们这边的进程,并没有显式调用urlencode相关的方法,因此猜测是RestTemplate自动给我们进行了urlencode。网上查找资料,发现这两篇文章讲得很详细:h.转载 2021-05-22 15:18:22 · 5895 阅读 · 0 评论 -
nacos 日志太多
1、access 日志大量打印,相关 Issue 有:https://github.com/alibaba/nacos/issues/1510主要表现是 {nacos.home}/logs/access_log.2019-xx-xx.log 类似格式文件名的日志大量打印,而且还不能自动清理和滚动。这个日志是 Spring Boot 提供的 Tomcat 访问日志打印,Spring Boot 在关于该日志的选项中,没有最大保留天数或者日志大小控制的选项。因此这个日志的清理必须由应用新建 Crontab原创 2021-05-11 09:41:28 · 2699 阅读 · 1 评论 -
Java URL处理
转:https://www.cnblogs.com/toutou/p/6066017.htmlJava URL处理URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示为互联网上的资源,如网页或者FTP地址。本章节我们将介绍Java是如处理URL的。URL可以分为如下几个部分。protocol://host:port/path?query#refprotocols(协议)可以是 HTTP, HTTPS, FTP, 和File。por转载 2021-05-10 12:59:02 · 289 阅读 · 0 评论 -
mybatis 类型转换器 LocalDateTimeTypeHandler
1、LocalDateTimeTypeHandler是mybatis实现的LocalDateTime与mysql日期类型的交互。2、无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从数据库中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。3、默认的TypeHandlersTypeHandler类 java类型 数据库类型 BooleanTypeHan.转载 2021-04-25 14:13:43 · 5723 阅读 · 0 评论 -
@FeignClient 一个module里面多个client 其内部接口的地址不能一样
在一个module里面,定义了多个clientZBUpgradeClient 和 PBUpgradeClient添加了这两个cleint后,服务怎么也运行不起来他们分别继承于 ZBUpgradeControllerApi 和 PBUpgradeControllerApi@RequestMapping("/upgrade" )public interface ZBUpgradeRecordControllerApi { @ApiOperation(value = "") @原创 2021-03-19 16:21:06 · 475 阅读 · 0 评论 -
Java中Integer.getInteger并不是将字符串转为数字
今天在代码中想要将一个 String 转为 Integer,代码大概如下public User getUserById(String userId) { Integer userid = Integer.getInteger(userId); //将userid传给一个dao层方法中查询User}结果发现, Integer.getInteger 得到的结果居然是null原来 Integer.getInteger 并不是将字符串转换为整数值,它的底层其实是调用了 System.转载 2021-01-20 10:26:23 · 2401 阅读 · 0 评论 -
centos7 安装 JDK1.8
手动安装 Oracle JDK 1.8下载JDK1.8# wget https://download.oracle.com/otn/java/jdk/8u261-b12/a4634525489241b9a9e1aa73d9e118e6/jdk-8u261-linux-x64.tar.gz?AuthParam=1601359356_e7e0dca8c5a86aa0c87c11c8facf34d0解压缩# tar -zxvf jdk-8u261-linux-x64.tar.gz配置环境变原创 2020-10-19 21:16:58 · 126 阅读 · 0 评论 -
docker openjdk:8-jdk-alpine 时区问题
使用openjdk:8-jdk-alpine镜像部署java应用时会出现时区不一致的问题。自己封装一个镜像,解决时区问题,并供之后使用。拉取openjdk:8-jdk-alpine 镜像[root@VM-0-9-centos ~]# docker pull openjdk:8-jdk-alpine运行并进入容器[root@VM-0-9-centos ~]# docker run -itd --name openjdk8-win openjdk:8-jdk-alpine[root..原创 2020-10-18 19:32:59 · 8309 阅读 · 1 评论 -
java.security.egd
SecureRandom在java各种组件中使用广泛,可以可靠的产生随机数。但在大量产生随机数的场景下,性能会较低。这时可以使用"-Djava.security.egd=file:/dev/./urandom"加快随机数产生过程。以产生uuid的时候使用nextBytes产生随机数为入口,xSecureRandom的代码逻辑。 public static UUID randomUUID() { SecureRandom ng =Holder.numberGenerator;转载 2020-10-17 22:22:32 · 4052 阅读 · 0 评论 -
URL特殊字符处理
在向腾讯批量提交数据时,发现有时有的数据签名失败,后来检查后发现凡是提交失败的那条数据,其签名字符串都含有 “+” 号。并没有做 urlencode 直接放在了 querystring 里面传了过去,致使接收方无法获得正常的参数。用URL传参数的时候,如果某一个参数中含" #$ ^ & * + = "这些符号的时候,在另一个页面或接收方就会取不到传过来的参数。有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,需要对其进行URL编码+ URL中+号表示空...转载 2020-10-13 15:53:21 · 1867 阅读 · 0 评论 -
Spring Bean的循环依赖 The dependencies of some of the beans in the application context form a cycle
***************************APPLICATION FAILED TO START***************************Description:The dependencies of some of the beans in the application context form a cycle: aServiceImpl defined in URL [D:\CODE\Java\IdeaProjects\test\AService.cla.原创 2020-09-12 15:22:55 · 5474 阅读 · 2 评论 -
java8 list.sort 排序
// 按照List中对象的id属性升序list.sort(Comparator.comparing(User::getId))// 按照List中对象的id属性降序list.sort(Comparator.comparing(User::getId).reversed());// 多个条件升序list.sort(Comparator.comparing(User::getId).thenComparing(User::getDeId));// id升序,deId降序原创 2020-09-10 11:17:46 · 19912 阅读 · 2 评论 -
Java long Long
转载:https://www.cnblogs.com/c2g5201314/p/13024261.html1、long 是 基本类型Long 是 对象类型2、long 默认值是 0Long 默认值是 null3、比较方法(1)Long a = new Long(1);Long b = new Long(2);System.out.println(a.equals(b));(2)Long 类型 也可以转 long类型 如 a.longVa...原创 2020-08-25 15:11:52 · 877 阅读 · 0 评论 -
lombok原理
转载:https://www.lagou.com/lgedJavac原理既然是在编译期对类进行操作了,那么就需要了解在Java中Javac到底对程序做了什么。Javac对代码编译的过程其实就是用Java来写的,可以查看其源码对其简单的分析。编译过程大致分为了三个阶段解析与填充符号表 注解处理 分析与字节码生成这三个阶段的交互过程如下图所示。解析与填充符号表这一步骤是两个步骤,包括了解析和填充符号,其中解析是分为词法分析和语法分析两个步骤。词法分析和语法分析.转载 2020-08-20 11:38:41 · 284 阅读 · 0 评论 -
lombok (idea中找不到get、set方法)
转载:https://blog.youkuaiyun.com/sj3913/article/details/87923877刚从git拉取的工程,发现idea报错,找不到bean中的的get、set方法。是因为类中使用了lombok的注解@Data,idea本身是不理解这个注解的,会报错找不到set方法,所以需要在idea中安装插件lombok plugin。Lombok 是一款 Java 开发插件,使得 Java 开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的 Java .转载 2020-08-20 12:41:09 · 7847 阅读 · 0 评论