自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 此博客已迁移,以后将不在csdn上更新

此博客已迁移,以后将不在csdn上更新感觉csdn的观看体验越来越差了,广告奇多,自己重新搭了博客,已经将文章都搬运过去了,这边就不再更新了。新博客地址:http://yangge.ac.cn...

2018-12-15 20:34:20 320

原创 springboot项目打包非常慢的问题

问题由来:最近发现用maven package打包的速度越来越慢了,非常影响调式速度。解决方案:因为在控制台发现了测试用例里面的输出,所以问题定位到是因为在打包的时候运行了测试用例,那就很简单了,百度一搜很多博客都又写,比如:https://blog.csdn.net/m0_37893932/article/details/78781558首先确认是这个springboot的maven插...

2018-10-31 15:02:31 2976

原创 SpringData jpa 实现多条件动态查询,分页功能

问题由来:刚开始使用springdata的时候,只会用findByName这样的简单查询,这样写dao层确实非常的快,但是在我们做筛选功能的时候,这样的查询似乎很难满足我们的需求,但是都已经用上的springdata又不想再去写mybatis这样在xml里面判断是否为Null。解决方案:1.Example,用example可以最快速的完成支持所有参数的筛选功能,像这样的代码:@Test...

2018-10-18 15:31:46 35301 12

原创 swagger带token或者cookie怎么过验证

问题由来:最近愈发感觉写接口文档太麻烦了,就研究了一下swagger,springboot用起来确实不要太方便,什么多余的操作都不需要有就可以把链接甩给前端了。 但是通常我们的系统都是带有身份认证的,无非几种方式,cookie,session,token,前两种可以算为一类,这个倒是比较好解决,下个chrome插件,可以很轻松的把一个页面下的cookie复制到我们的swagger-ui界面下...

2018-05-27 14:21:47 20137 8

原创 猪场实习一个月总结

入职猪场已经一个月了,进入大公司之后最大的感觉就是,牛人很多,自己非常渺小。 以前自以为自己的开发能力肯定也不会输给企业里的人,完全有能力承担一个大项目。 但其实并不是这样,大公司里项目所考虑事物的维度真的和我之前的野路子不一样,我之前的小团队,想得最多的就是,怎么样才能实现?而我观察大佬们的讨论是这样的 怎么样实现最快?怎么样实现最稳定?怎么样实现后期好扩展,好维护?也需要这样...

2018-04-15 15:04:25 3371 1

原创 Java递归的将JSON所有参数的key的首字母转为大写

问题由来:这两天对接其他部门的api接口时,发现一个参数检查始终过不去,最后被告知这个参数的首字母必须为大写,这就很恶心了!因为java object自动转出来的json首字母都是小写的!解决方案:网上有说用@JsonFiled @JSONProperties 注解可以解决的,但是我试了下没有成功,而且每个参数都要加,很麻烦,还有些是内部类。 因为内部类较多,我就写了一个递归的Obj...

2018-03-30 14:53:30 968 1

原创 ThreadLocal和线程的普通成员变量究竟有什么区别?

问题由来:最近在看多线程的知识,有提到ThreadLocal是一种线程局部变量,每个线程都有相对独立的变量初始化拷贝,是一种以空间换时间的做法。 那么问题来了, 1. 它和在线程代码里直接写一个普通成员变量有什么区别呢? 2. 它真的能“以空间换时间”吗?问题1的思考:问题:它和在线程代码里直接写一个普通成员变量有什么区别呢? ThreadLocal和线程的普通成员变量都是...

2018-02-25 23:40:30 671

原创 解决idea新建Module的奇怪路径问题

问题由来:在部署SpringCloud的时候想新建一个module来快速创建,结果被创建出来的目录结构搞得一脸懵逼,新建的module的根目录跑到了,项目的src目录下,整个看起来乱七八糟,而且remove module之后会有配置文件始终没有被删干净,逼死强迫症啊!最后我是直接把整个项目全删了,然后重新git clone的。解决方法:直接新建一个项目,idea不像eclipse那样

2018-02-02 14:08:16 7885

原创 hibernate设置jdbc的编码问题

问题由来:数据库请求的中文参数始终会有问题,问题定位到请求jdbc的编码,但是在xml里面按照各路方案试了很多次,但是还是不行。解决方案:遇到了一个超大的坑!!!!!!!!! 有时候在使用xml作为配置文件的时候,应该要使用xml的编码规则来进行适当的设置。 下面给出xml中一些特殊符号的编码转换:< > > 大于号& & an

2018-01-15 21:17:04 235

原创 Java实现 DES算法ECB模式NoPadding填充

问题由来:今天客户需要我向机器端发送命令,然后需要加密一个字段,用的就是DES算法ECB模式NoPadding填充。因为之前没有接触过,所以在网上找了很多,最后调试,优化了一个。解决方案:实现类:public static byte[] getKeyByByteBuf(ByteBuf byteBuf) { byte[] byteTemp = new byte

2018-01-12 15:42:33 5369

原创 HibernateTemplate.save()报错 org.hibernate.exception.SQLGrammarException

1.问题由来写着写着在用this.getHibernateTemplate().save(l);的时候报错了,而且是说sql语法错误,这就有点让人摸不着头脑了,这又没有写sql怎么可能会有sql语句错误,而且以前这么写的时候好像也没啥问题啊。2.解决方案:在另外一个博客上,看到有另一个博主也遇到了这个问题 然后我马上检查了一下数据表,果然发现有一个字段名为order,大有嫌疑! 然后把这个字

2017-12-31 17:59:02 346

转载 pip错误:TypeError: parse() got an unexpected keyword argument 'transport_encoding'

装了TensorFlow后莫名其妙的出现了这个错误,百度了一个答案mark一下,转自http://blog.csdn.net/cheese_pop/article/details/78201359Win10,ANACONDA3(64-bit),Python3.6.2。ANACONDA Prompt中不能用pip命令安装包,并且是在安装了TensorFlow后才发生的。报错如下:

2017-12-25 19:12:14 462

转载 maven项目报 ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

1.问题由来:今天在移植一个spring项目的时候update maven了一下,然后就报了如题的bug。2.解决方案:百度的一个教程:严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListenerjava.lang.ClassNotFoundExce

2017-12-25 16:25:19 321

原创 Netty报java.net.BindException: Address already in use: bind

1.错误提示:java.net.BindException: Address already in use: bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425) at sun.nio.c

2017-12-15 22:24:41 3818

原创 递归下降语法分析实验

一、实验目的 通过设计、开发一个高级语言的递归下降语法分析程序,实现 对词法分析程序所提供的单词序列进行语法检查和结构分析,加 深对相关课堂教学内容的理解,提高语法分析方法的实践能力。 二、实验要求 (1)理解语法分析在编译程序中的作用,以及它与词法分析程序的 关系; (2)掌握递归下降语法分析方法的主要原理; (3)理解递归下降分析法对文法的要求; (4)熟练掌握Se

2017-12-06 18:30:58 1565

原创 自定义@Query 中使用分页

1.问题由来:有一个比较复杂的sql请求,所以自定义sql写起来比较顺手,也比较清晰,但是不能直接使用,Pageable进行分页,需要进行一系列配置。2.解决方案:public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT * FROM USERS WHERE LASTNAM

2017-12-02 23:33:49 4318 1

原创 List<String> 调用Collection.sort()整个流程的知识点

1.sort()本身:Collection.sort()方法有两种形式, 格式一: public static 2.Comparator接口:这个接口中最重要的方法实现就是compareTo(),这也是排序的关键,举个例子(String 中实现的compareTo()方法):/* @param anotherString the <code>String</code> to be comp

2017-12-01 23:45:08 840

原创 怎么给视图的字段一个默认值

问题由来:在使用Spring JPA来操作一张left join的视图的时候,报了一个错误 就是在null转为long的时候报的错。 一拿到这个问题,第一想法是修改set方法,判断null然后给0,但是转念一想,long是基础数据类型,都没办法用object去接,这就很棘手了。所以只能修改一下视图了。解决方案:我使用的是mysql数据库,用ifnull函数处理一下就好了。select a.*

2017-11-28 13:21:38 1949

原创 Netty框架服务端主动向客户端通信

项目场景:一个车联网项目,很多很多台车辆会定时像服务端发包,所以都是使用TCP长连接的方式。现在有一个需求是,服务端需要向客户端主动的发送升级命令,由于使用的事件驱动的Netty框架,我们怎么才能由服务端主动的向客服端通信呢?解决方案:package cn.ac.yangge.domain;import io.netty.channel.Channel;import java.util.HashMa

2017-11-20 19:44:56 7103 23

原创 一个让我心态爆炸的bug

问题由来:外包使用的netty框架,我每隔5分钟遍历一次channel,然后把isActive()==false的channel都移除,把数据库里的设备状态也改为不在线。 然后!!!我写了个很傻比的设定,每次遍历之前,先检查一下channelMap是否为null或者isEmpty(),如果是!就把数据库中所有的设备都记为离线状态!!产生的问题:我是直接服务器和本地测试采用了同一台服务器(也因为是外

2017-11-18 21:10:08 297

原创 java double类型加减运算时出现的精度丢失问题

问题由来:今天在写一个业务参数的时候,需要几个数一起算一下最后返回一个浮点数。 一开始我就直接用强制类型转化之后开始加加减减,后来发现总是会在末尾多出一些莫名的小数,这很明显就是精度丢失问题,但是因为是要返回固定的数据类型,不能用Format转成String来固定格式。解决方案最正确的做法应该是使用BigDecimal 来转一下类型,这样才是Effective Java 中的推荐方法,但是我有点偷

2017-11-11 21:30:27 2177

转载 SpringBoot解决跨域问题

之前写php和python的时候都是通过添加header来实现跨域的,现在用springboot猛一遇到这个问题还真有点懵,不知道该怎么加了,所以在网上找了些解决方案:package cn.ac.yangge.config;import org.springframework.context.annotation.Configuration;import org.spring

2017-10-23 20:07:09 364

原创 maven 引入了mysql jdbc的Driver之后仍提示Cannot load driver class: com.mysql.jdbc.Driver

之前实习的时候就遇到了这个问题,但是当时是别人教我解决的,也没太注意,mark了一个解决方案:首先,我需要连接到MySQL 5.5的jar应该是  mysql-connector-java-5.1.15-bin.jar 但不是  mysql-connector-java-5.1.15.jar。其次,这个jar在maven存储库中是不可用的,所以我需要手动将其添加到我的本地mav

2017-10-18 16:17:32 13821

原创 springboot 在@Autowire无法注入bean时的临时处理办法

问题由来:在用netty写一个网络编程项目的时候,需要用到mongoTemplate这个springdata提供的mongodb的操作类。但是这个只能由springboot来注入,但是netty又会进行new操作,使得@Autowire无法正常工作。解决方案:1.我看网上的教程,有spring.xml来显式注入的,但这个有点麻烦。 2.还有几个教程没看懂 比如 http://blog.csdn.n

2017-10-04 12:50:52 3158 1

转载 SocketChannel---各种注意点

找问题的时后发现了这篇文章,惊为天人,几乎涵盖了我所有碰到的坑,非常不错!不得不说,NIO的API设计的够难用的,坑还巨多....这也是为什么大家都不直接使用nio的原因吧,一般会用mina或者netty啥的(这是个记录的博客,所以会不断更新) 关于通道本身的一些注意点,请参考我之前的:nio通道(2)---几个注意点其他一些参考nio summary 1   

2017-09-20 09:31:18 16606 4

原创 java nio 的读写操作代码示例

package cn.ac.yangge.service;import cn.ac.yangge.unity.AnalysisData;import cn.ac.yangge.unity.ByteBufferPrint;import org.springframework.stereotype.Service;import java.io.*;import java.net.Inet

2017-09-19 20:25:15 576

转载 centos7安装MongoDB3.4 以及spring data mongodb的配置使用

试了几个教程还是这个比较清晰,简单,易操作。简介MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功

2017-09-11 20:07:46 292

转载 mark好用的idea快捷键

1 智能提示Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,还有更智能地按类型信息提示Ctrl+Shift+Space,但因为Intellij总是随着我们敲击而自动提示,所以很多时候都不会手动敲这两个快捷键(除非提示框消失了)。用F2/ Shift+F2移动到有错误的代码,Alt+Enter快速修复(即Eclipse中的Quick

2017-08-22 22:19:44 198

原创 Linux下安装Anaconda

1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/先到这个清华的镜像站里面找到对应的下载链接,再使用wget下载,如wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-4.4.0-Linux-x86_64.sh2.安装A

2017-07-21 10:42:02 2541

转载 SpringData JPA中数据库表的映射类需要一个不在表中的字段

当我们使用spring data jpa开发的时候,会将实体类中的成员变量与表中的字段一一对应,当我们在实体类中加上一个不与数据库表一一对应的成员变量的时候,此时会报错,例如:Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "BOOK0_"."TYPENAMES": 标识符无效此时我们只要在这个成员变量上加上注解@Tr

2017-07-19 10:23:04 1426

原创 SpringData JPA 使用SQLQuery原生

1.用注解创建EntityManager:/*unitName是用来选择特定的PersistenceContext,默认会选择主数据源,这个在创建数据源的bean的时候会通过  .persistenceUnit("secondaryPersistenceUnit") 来创建,这个方法是在EntityManagerFactoryBuilder的对象上的*/@PersistenceCont

2017-07-18 13:35:30 571

转载 java遍历map

//查了几次,每次用到时时候总是忘,干脆记下来在Java中如何遍历Map对象How to Iterate Over a Map in Java在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等)

2017-07-11 09:46:47 161

原创 找到一个超好用的navicat

http://download.csdn.net/download/u012720225/9672344安利一记

2017-07-11 08:51:47 2363

转载 注释驱动的 Spring cache 缓存介绍

转自:https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/概述Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它

2017-06-30 23:05:10 164

原创 往本地maven库里手动的添加jar包

问题来源:今天需要用到一个maven中央库里没有的jar包,但是又不想直接导入到项目,想通过maven来导入包。解决方案:Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。曾是Jakarta项目的子项目,现为独立Apache项目

2017-06-23 14:35:36 1422

原创 Liunx下杀进程

先通过 ps -ef |grep java 找到所有含有’java’关键字的进程,可以看到如下图: 3169就是我想要杀死的进程的id 然后 kill -9 3169 就是强行杀死该进程

2017-06-05 20:10:38 209

转载 SpringBoot 在启动时运行代码

在Spring boot项目的实际开发中,我们有时需要项目服务启动时加载一些数据或预先完成某些动作。为了解决这样的问题,Spring boot 为我们提供了一个方法:通过实现接口 CommandLineRunner 来实现这样的需求。实现方式:只需要一个类即可,无需其他配置。 实现步骤:1.创建实现接口 CommandLineRunner 的类 MyStartupRunne

2017-06-01 00:12:15 6987

转载 使用screen让程序在Linux后台运行

screen是一个可以在多个进程之间多路利用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。1、安装screenyum install screen2、创建screen会话screen -S wordname3、暂时离开,保留screen

2017-05-24 20:20:21 1480

转载 Spring中@Controller和@RestController之间的区别

1. Controller, RestController的共同点     都是用来表示Spring某个类的是否可以接收HTTP请求2.  Controller, RestController的不同点     @Controller标识一个Spring类是Spring MVC controller处理器     @RestController:  a convenience a

2017-05-23 22:30:38 503

转载 使用Intellij创建第一个Springboot程序

首先先介绍一下Springboot:Spring是Java开发中,十分著名的一个框架。但是该框架的使用必须结合大量的XML配置文件,这一点让开发人员痛苦无比。Springboot是Spring官方重新构造的一个框架,将Spring的配置简化了很多。著名IDE,Intellij介绍:老牌的Java代码IDE,收费软件。比免费的Eclipse高大上了不少。Springboot官方文档也极度

2017-05-23 21:24:55 997

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