
java
平静的起步吧
积圭步成千里,积小流成江河。
有问题可邮件 uuid0717@163.com
展开
-
SpringBoot集成MyBatis多数据源之ODPS(MaxComputer)
1.MyByatis通过多数据源的方式集成ODPS1.1 新增配置文件# datasource-saasspring.datasource.names = odpsspring.datasource.type = com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name = com.mysql...原创 2019-11-27 16:29:55 · 4114 阅读 · 0 评论 -
java发送http的get、post请求
public class HttpRequest { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 ...转载 2018-11-01 17:26:20 · 204 阅读 · 0 评论 -
java.io.IOException: Server returned HTTP response code: 415 for URL:xxxxxx
使用 JSON参数转为实体对象报错添加下面的代码解决问题:connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");转载 2018-11-01 17:28:30 · 6741 阅读 · 0 评论 -
Spring Boot使用Value注解给静态变量赋值的方法
昨天在使用@Value注解给静态变量赋值的时候,发现静态变量的值始终是null。后来搜索一下得知其中原因,Spring Boot 不允许/不支持把值注入到静态变量中。但是我们可以变通一下解决这个问题。因为Spring Boot 支持set方法注入,我们可以利用非静态set方法注入静态变量。代码: private static String directPurchaseurl; @Va...原创 2018-11-01 17:30:20 · 3026 阅读 · 2 评论 -
Spring详解-事务管理
1、事务介绍 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 这里我们以取钱的例子来讲解:比如你去ATM机取1000块钱,大体有两个步骤:第一步输入密码金额,银行卡扣掉1000元钱;第二步从ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱...转载 2018-11-05 17:19:34 · 240 阅读 · 0 评论 -
Spring Cloud Alibaba,中国Javaer的福音,为微服务续上18年
Java 界最近发生了一件大事,Spring Cloud 官方宣布阿里开源 Spring Cloud Alibaba,并推出首个预览版。据介绍,Spring Cloud Alibaba 由阿里开源组件和阿里云产品组件两部分组成,其致力于提供微服务一站式解决方案,方便开发者通过 Spring Cloud 编程模型轻松开发微服务应用。开源的消息引起了巨大的反响,Spring Cloud Ali...转载 2018-12-03 14:24:23 · 814 阅读 · 0 评论 -
Unknown integral data type for ids : java.lang.String; nested exception is org.hibernate.id.Identifi
被这个错误困扰了很久,终于在博主这里找到了答案1.发生的异常内容:org.springframework.orm.hibernate5.HibernateSystemException: Unknown integral data type for ids : java.lang.String; nested exception is org.hibernate.id.Identifie...转载 2019-01-04 20:26:27 · 2470 阅读 · 0 评论 -
SpringBoot之QueryDsl嵌套子查询
楼主项目中要求所有的SQL必须以JPA的QueryDsl格式进行数据库操作,其中有一个稍微复杂点的嵌套子查询,网上资料比较少,而且子查询也特别简单。费了好大的劲才搞出来,现贴出来供大家参考。这是MyBatis的查询格式:select dd.crm_province as 省编码, dd.province_name as 省份, nvl(dd.annco...原创 2019-01-12 11:22:40 · 14927 阅读 · 31 评论 -
SpringBoot集成RabbitMq(三种实现方式)
1:首先引入jar包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </de...原创 2019-04-04 10:32:26 · 762 阅读 · 0 评论 -
eureka-client无法启动com.netflix.discovery.DiscoveryClient : Shutting down DiscoveryClient
解决方法: 在pom.xml中加入或者父pom.xml中加入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...原创 2019-07-03 14:23:10 · 13148 阅读 · 3 评论 -
1、config-client集成bus报错
通过集成RabbitMq,启动报错:虽然显示的是从config-server端远程读取配置文件报错,其实这是表面现象,真实原因是guest只能默认只能连接本机IP(也就是127.0.0.1),所以控制台给我报了一个拒绝访问的错误;将host改为本机IP即可,重启RabbitMq。2、SpringCloud2.0以后,没有/refresh手动调用的刷新配置地址htt...原创 2019-08-15 15:13:17 · 312 阅读 · 0 评论 -
2、zipkin服务启动失败
2.1 -错误信息:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2019-07-30 22:25:28.711 ERROR 99127 --- [main] o.s.boot.Spring...原创 2019-08-15 15:41:16 · 7758 阅读 · 1 评论 -
brew安装指定版本的Thrift0.10.0以及遇到的问题
https://www.jianshu.com/p/aadb54eac0a8https://www.jianshu.com/p/aedec37a2b15转载 2019-09-05 23:43:33 · 1095 阅读 · 0 评论 -
四十三条纯干货 Java 代码优化建议
代码优化最重要的作用应该是避免未知的错误,因此在写代码的时候,从源头开始注意各种细节,权衡并使用最优的选择,将会很大程度上避免出现未知的错误,从长远看也极大的降低了工作量。所以说代码优化的目标是减小代码体积、提高代码运行效率。转载 2018-10-10 10:14:56 · 178 阅读 · 0 评论 -
使用MockMvc进行Junit单元测试
一、单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作。以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现。 这里主要是使用MockMvc对我们的系统的Controller进行单元测试。 对数据库的操作使用事务实现回滚,及对数据库的增删改方法结束后将会还远...转载 2018-08-22 09:53:37 · 10082 阅读 · 0 评论 -
SpringMVC通过@Value注解读取.properties配置
在bean(可以是controller、service、dao等)中,使用@Value注解:[java] view plain copy@Service public class TestService{ @Value("${sytem.username}") String loginUserName;转载 2018-01-16 14:52:19 · 1689 阅读 · 0 评论 -
解决java compiler level does not match the version of the installed java project facet
此文解决了问题,特此记录,原文地址:http://blog.youkuaiyun.com/chszs/article/details/8125828java compiler level does not match the version of the installed java project facet错误的解决因工作的关系,Eclipse开发的Java项目拷来拷去,有时候会报一个很奇怪的错误。明明源...转载 2018-03-12 16:16:11 · 241 阅读 · 0 评论 -
深入理解HTTP Session
session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。 为了说明问题,这里基于Java Servlet理解Session的概念与原理,这里所说Servlet已经涵盖了JSP技术,因为JSP最终也会被编译为Servlet,两者有着相同的本质。...转载 2018-05-02 15:23:19 · 180 阅读 · 0 评论 -
在项目中:关于代码优化的一些思考
问题1 :客户登录APP,点击客户管理,查看NB客户12S才返回数据?原因:当时在需求立项的时候,因为NB100+客户是不变的静态数据,不会多也不会少。但是老大提出:一半调接口取数据,另一半从自己表里查。也就是说,先从DK接口取300+数据,每条数据均有十几个字段,再从我们表里查100条数据,然后循环比对,返回前端。性能问题由此发生。通过分析:调用接口达到了8S,查库比对达到了4S。优化:1:飞哥...原创 2018-04-26 10:34:36 · 1210 阅读 · 0 评论 -
JDK1.8源码分析之ArrayList
ArrayList数据结构 分析一个类的时候,数据结构往往是它的灵魂所在,理解底层的数据结构其实就理解了该类的实现思路,具体的实现细节再具体分析。 ArrayList的数据结构如下: 说明:底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据。我们对ArrayList类的实例的所有的操作底层都是基于数组的。下面我们来分析通过数组是如何保证库函数的正确实现的。三、...转载 2018-05-11 17:08:41 · 219 阅读 · 0 评论 -
Java多线程问题总结
1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的...转载 2018-05-15 23:17:50 · 448 阅读 · 0 评论 -
dom4j解析xml文件时发生must end with the ';' delimiter.的解决方法
在项目中的配置文件中有如下代码:<set-property name="url" value="jdbc:mysql://192.168.0.123/test?user=root&password=123456"/>在解析时,抛出异常 解决:dom4j在解析xml文件时,&字符需要转义成&amp;因此改成<set-property name="url" v..转载 2018-06-15 16:05:19 · 1719 阅读 · 0 评论 -
ReentrantLock之公平锁与非公平锁
在Java的ReentrantLock构造函数中提供了两种锁:创建公平锁和非公平锁(默认)。代码如下:public ReentrantLock() { sync = new NonfairSync();} public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairS...转载 2018-07-04 11:31:46 · 182 阅读 · 0 评论 -
Lock中的一些方法及其作用
1:getHoldCount() 查询当前线程保持锁定的个数,也就是调用lock()方法的次数。2:getQueueLength() 返回正等待获取锁定的线程估计数。比如有5个线程,1个线程首先执行await()方法,那么在调用方法后返回值是4,说明有4个线程同时在等待lock的释放。3:getWaitQueueLength(Condition con) 返回等待与此锁定相关的给定条件Condit...原创 2018-07-04 13:37:56 · 1394 阅读 · 0 评论 -
解决stackOverflow打开慢的问题(一个 Chrome 插件:将 Google CDN 替换为国内的。)
转载自:https://blog.youkuaiyun.com/u010123949/article/details/79918737stackOverflow打开慢并不是stackoverflow被墙,而是因为stackoverflow用了google的api,而Google在天朝是用不了的,所以才导致像stackoverflow这类网站,出现样式错乱,不能注册,不能登录,打开特别慢,甚至打不开。所以,...转载 2018-07-28 14:17:51 · 4569 阅读 · 0 评论 -
深入理解Volatile关键字及其实现原理
volatile的用法volatile通常被比喻成"轻量级的synchronized",也是Java并发编程中比较重要的一个关键字。和synchronized不同,volatile是一个变量修饰符,只能用来修饰变量。无法修饰方法及代码块等。volatile的用法比较简单,只需要在声明一个可能被多线程同时访问的变量时,使用volatile修饰就可以了。如以下代码,是一个比较典型的使用双...转载 2018-08-06 16:12:38 · 34453 阅读 · 13 评论 -
基于JDK实现的动态代理
JDK动态代理是基于java.lang.reflect.*包提供的方式,他必须借助一个接口才能产生代理对象,所以先定义接口:实现类此时可以开始实现动态代理了,首先建立起真实对象和代理对象的关系,然后实现代理逻辑。在JDK动态代理中,实现代理逻辑必须实现java.lang.reflect.InvocationHandle接口。测试:...原创 2018-08-01 23:28:44 · 1731 阅读 · 0 评论 -
Java多线程精选面试题
1、多线程有什么用?1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程"同时"运行罢了。多核CPU上的多线程...原创 2018-08-15 09:44:22 · 414 阅读 · 0 评论 -
A child container failed during start,Tomcat启动失败
启动Java Web项目时提示错误:A child container failed during start提示:A child container failed during start 从来都不是问题的根本原因!完整错误信息如下:[plain] view plain copy严重: A child c转载 2018-01-31 09:44:22 · 459 阅读 · 0 评论