java
现役码农一个
主要是记录一些工作的总结和使用过的技术要点,相互学习
展开
-
java中的default
今天在新的机器上修改以前的一个demo代码,在网上找到一个适用的代码片段A,写入项目后直接报错。1,片段A中所有的重写注解都报错,提示要去除调这个注解,原因网上写的很清楚,大家可以去看下,https://blog.csdn.net/liuhhaiffeng/article/details/7178026除了这个里面说的修改preference->java->co...原创 2019-10-21 14:35:59 · 984 阅读 · 0 评论 -
sprinig restTemplate获取数据报错protocol_version
最近项目要和项目A打通,准备只用spring的restTemplate作为数据获取和传递的方式。package com.xxx.xxx.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpEntity;import org.springfram...原创 2019-02-25 09:26:05 · 1442 阅读 · 0 评论 -
java时间戳获取字符串12小时制和24小时制
案例今天线上出现一个问题,一个定时任务报错,这个定时任务每天跑四次。用了小半年也没有发现问题。这次突然报错,最初的猜想是不是修改了什么代码逻辑导致的通过log日志定位发现是生成了两个相同的taskId号,之前使用生成的方式是: public static String generateSSTime() { SimpleDateFormat format = new SimpleDa...原创 2018-12-20 14:09:09 · 4384 阅读 · 0 评论 -
解决HashMap不能保证数据顺序问题
最近同事在开发中遇到一个问题,从数据库中查找的使用order by的数据传递到前台后变成无序的。使用的是mysql + mybatis一开始以为是数据order by没有生效,复制sql到客户端查看发现是正确的。后来发现他的映射类型(resultType)是map,外层使用的是HashMap来接受数据,而HahsMap是不能保证顺序的(插入顺序和读取顺序不一致)。由于大部分代码已经完成,...原创 2018-11-15 15:56:46 · 10626 阅读 · 0 评论 -
解决json字符串中包含null传递报错404的问题
这两天在和移动端对接接口时,发生了404错误。使用的是net.sf.json.jsonarray检查发现是返回的jsonarray字符串中有一个对象的属性值为空。当属性值为null时,json解析就会中断,导致接下来的数据无法正确获取。上网查了好几种解释,但是和我的情况多少有些区别。但是也算是类似问题的一种解决方案吧,所以都记录下来了。例子来自网路,侵删!1,当使用com.alibab...原创 2018-11-02 09:42:22 · 4010 阅读 · 0 评论 -
解决mybatis报错 There is no getter for property named ... in 'class java.lang.String'
发生这个的原因就是对于的属性字段没有书写正确,导致报错。这类型的报错类似There is no getter for property named ... in 'classXXX。一个主要原因是在xml中进行参数配置的时候,参数名称书写错误。这个也是我遇到的问题。为了避免这类问题,就要了解mybatis配置文件中parameterType这个属性。这个属性的值可以为:1,简单类型...原创 2018-11-03 17:33:52 · 6583 阅读 · 0 评论 -
线程安全的使用HashMap的三种方法
一般情况下使用HashMap可以解决key-value的使用要求。但是在对线程同步有要求的情况下,HashMap由于自身特性不能满足,可以采用下面几种方式1,HashtableMap<String, String> map = new Hashtable<>()2,ConcurrentHashMapMap<String, String> ...原创 2018-10-25 20:45:33 · 2594 阅读 · 0 评论 -
微信网页获取用户的openId
最近解决一个微信公众号页面获取用户openid的问题。下面是自己的整理1,微信平台对回调域名的说法如下,意思就是说,如果你想通过回调获取授权信息,必须先设置回调域名,就是你要获取openid的页面的url所在的域名。参考下面的说明关于网页授权回调域名的说明1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权...原创 2018-09-18 16:02:41 · 1038 阅读 · 0 评论 -
mybatis中resultType返回类型
mybatis中resultType可选类型:1,java的基础类型及其包装类int,double和java.lang.Integer,java.lang.Double等2,实体类,自己定义的实体类3,map类型,如果使用resultMap这里可以使用自定义map,本文只介绍resultType4,集合,即返回的时一个List集合,其中该集合的类型可以为1,2,3中提到的类型...原创 2018-09-13 10:49:05 · 87388 阅读 · 1 评论 -
java web项目过滤器Filter实现
1,在web.xml中配置一个Filter标签 <filter> <filter-name>Security Filter</filter-name> <filter-class>com.xx.xx.xx.xxFilter</filter-class> <init-param> <param-n...原创 2018-09-03 09:01:42 · 3005 阅读 · 0 评论 -
Spring的RestTemplate实现调用demo
spring通过restTemplate实现跨系统调用工具类:import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springf...原创 2019-02-02 17:27:39 · 2153 阅读 · 0 评论 -
java中的三种代理模式
为了搞清楚spring AOP的代理原理,在网上找了一些资料学习,总结如下:代理模式:可以在不修改目标对象功能的前提下,对目标进行功能扩展。1,静态代理:需要代理对象和被代理对象实现相同接口或者继承相同的父类静态代理一个很大的问题是,一旦目标对象实现的接口或者继承的父类新增了方法,那么代理对象和目标对象都需要进行修改 接口:package com.wh.www.servic...原创 2019-02-20 17:05:40 · 818 阅读 · 0 评论 -
解决mybatis返回时间后面多了一个.0的问题
项目中设置创建时间createTime datetime(mysql).查询返回类型resultType="Map"在java层获取时间的时候String createTime = map.get("createTime") == null ? "" : map.get("createTime").toString();System.out.println(createTime)...原创 2019-03-02 17:47:29 · 14683 阅读 · 1 评论 -
Introspector实现通过反射机制获取对象的属性值
实现一个通用的方法的时候,我们有时候需要实现通过反射机制去获取对应的属性值。下面是通过java.beans包实现这个功能的代码。首先我们定义一个实体类。public class Student { private Integer age; private String name; private String address; private Integer teacher...原创 2019-10-11 14:56:48 · 356 阅读 · 0 评论 -
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException问题解决
这周项目出现一个问题,部分单据在查询详情的时候。报错net.sf.json.JSONException: java.lang.reflect.InvocationTargetException一看这个报错初步判断是JSON转换的时候出问题了。然后根据堆栈信息找到了对于的方法。里面有一段代码JSONSerializer.toJSON(item).toString();这里的i...原创 2019-09-09 09:28:23 · 7422 阅读 · 1 评论 -
java实现导出doc文档
之前只接触过导出excel,当然项目中总会有一些特殊要求,比如这次甲方爸爸要求导出word文档,代码来了。项目使用的是pom进行管理的,dependency包括下面几个 <!-- doc --> <dependency> <groupId>com.lowagie</groupId> <artifactI...原创 2019-06-04 09:08:54 · 4322 阅读 · 0 评论 -
java后台生成二维码的的demo
之前写了一篇前端生成二维码的文章,今天这篇是java后台实现的,废话不多说,上代码。我使用的是maven工程,这里是pom需要的dependency <!-- 二维码需要的 --> <dependency> <groupId>com.google.zxing</groupId> <artifactI...原创 2019-06-12 21:08:33 · 848 阅读 · 0 评论 -
maven打包jar文件读取jar内部配置文件和jar外部配置文件demo
package www.hub;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Ma...原创 2019-05-04 23:07:34 · 1676 阅读 · 0 评论 -
java实现内嵌Jetty+sqlite数据展示Demo
首先是sqlite的安装,我这里简单写一点,详细的可以参考Runoob.com教程下面是一些基本的sql。创建数据库:sqlites3 testDB.db创建表格:CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE ...原创 2019-04-15 11:13:15 · 465 阅读 · 2 评论 -
树莓派设置开机自动运行java的jar包
最近项目中使用了树莓派作为开发环境,开发好项目后,打包成jar。放到树莓派上面执行。有一个需求是设置开机自启动,下面是设置的步骤1,首先切换到root下,sudo su2,修改rc.local文件,这里要注意树莓派对vi编辑支持不是很好,建议使用nano进行编辑sudo nano /etc/rc.local在exit 0前面添加运行代码sudo java -jar...原创 2019-05-13 09:10:38 · 2995 阅读 · 2 评论 -
java中BigDecimal的使用demo和一些注意点
项目中平时一般的计算使用浮点型和整型是可以满足要求的,有时候对精度要求较高的时候上面的方法不能满足。这个时候就要使用BigDecimal了直接上demo: BigDecimal a = new BigDecimal("99999999999.0215482"); BigDecimal b = new BigDecimal("99999999998.0215481"); Sy...原创 2019-03-18 09:28:47 · 589 阅读 · 0 评论 -
使用java的split()方法时,需要转义才能使用的几个字符
之前项目出现返回时间里面多了一个".0",最开始直接使用split("."),发现不能得到正确的结果。进一步调试发现需要进行转义才行。=.=查找了一下原因,在正则表达示中有使用到的字符,在使用时要进行转义处理。查看了一下正则表达式,来自百度。 元字符 描述 \ 将下一个字符标记符、或一个向后引用、或一个八进制转义符。...原创 2019-03-02 19:20:20 · 3976 阅读 · 0 评论 -
Java 两个整形相除总是得0解决方法
1,在java中int和Integer在进行除法运算的时候,总是得到“0”package com.tk.www;public class Demo { public static void main(String[] args) { Integer a = 123; Integer b = 456; int c = 123; int d = 456; System...原创 2018-09-03 09:02:08 · 10857 阅读 · 0 评论 -
mybatis实现模糊查询的几种方式
最近新项目使用mybatis作为ORM,由于之前都是使用hibernate,对mybatis使用经验不多。到mybatis官网学习。后面会多做这方面的总结,作为日后工作的参考。今天要实现的时模糊查询。项目使用的时mysql,其他数据库可能需要修改。1,使用concat方法<select id="getUserList" resultType="User">sel...原创 2018-08-20 17:52:02 · 1415 阅读 · 0 评论 -
SpringMVC传递list到后台
默认情况下是不能够传递list集合通过查询资料发现有两种方式1,对于基本类型的集合,如ids等Integer,或者names等String。前台通过声明var arr = [];arr.toString();将数组变为字符串,然后通过参数传递到后台。实体类也可以JSON.stringify()转换成json字符串传递到后台2,这种方式需要在后台声明实体类。如果希望传递一个对象A的list到后台。这...原创 2018-05-02 20:23:24 · 1372 阅读 · 0 评论 -
springboot实现文件上传下载
上传代码一般默认上传大小为1M(之前写的是30M,2018-11-06修改为1M),如果需要更大,要自己配置。application.yml(之前说过,冒号后面要空一格,然后再写值)spring: http: multipart: enabled: true max-file-size: 100Mb max-request-size: 10...原创 2018-05-02 20:20:34 · 2255 阅读 · 3 评论 -
java单例模式
“懒汉式”是在你真正用到的时候才去建这个单例对象“饿汉式”是在不管你用的用不上,一开始就建立这个单例对象总体来说单例比较好的创建方式:饿汉式:public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} publ...原创 2018-05-02 20:18:36 · 93 阅读 · 0 评论 -
spring boot搭建遇到的问题
最近新项目需要搭建微服务,技术选型为spring boot,为此我本地搭建了基本的架子测试一些基本的功能特性框架搭建很简单,网上搜一下都有,这里就不重复了。但是也遇到了一些问题,先总结如下:1,主要是pom文件中配置的各项dependency,不兼容(猜测)导致jar包不能正确导入。选用比较成熟的版本<parent> <groupId>org.springframework...原创 2018-04-01 13:46:44 · 747 阅读 · 0 评论 -
后台实现跨域访问CORS
CORS这里起了两个服务,一个端口是8080,一个是8089.算是不同源后台配置---8089 @CrossOrigin(origins = "http://localhost:8080") @RequestMapping(value = "/get", method = RequestMethod.POST) public HashMap<String, Object> get(@R...原创 2018-03-03 14:38:43 · 2435 阅读 · 0 评论 -
解决jsp嵌入的java代码不能与el表达式一起使用的问题
在JSP中如果要使用java代码必须要用<%%>,一旦使用后,不能与EL表达式一起使用,那么如果解决这个问题。如对于一些使用if判断的java代码可以使用JSP标签来代替<c:if>。也就是说,对于可以用JSP标签或者其他标签代替的代码尽量使用标签来完成...原创 2017-11-21 20:20:27 · 3815 阅读 · 0 评论 -
hibernate配置文件属性catalog
在hibernate配置文件中,catalog这个属性是可选属性。catalog表示数据库中db的名称如:catalog="test"那么就会到配置的数据库中dbname为test中查找对应的table<class name="映射的实体类" table="tablename" catalog="dbname">在进行配置的时候有一点要注意。如果关于数据库中的配...原创 2017-11-21 20:04:50 · 3160 阅读 · 0 评论 -
java实现邮件发送报错javamail could not connect to smtp host
项目中需要实现一个邮件发送功能,使用的是spring框架中的javaMail。配置文件和代码都没有问题,但是测试一直报错javamail could not connect to smtp host.后来通过查找资料,发现自己使用的jdk8默认使用IPV6,只要改为IPV4就能解决。如果是maven工程,右键点击项目选择Run as -> 选择Run configurations,在对原创 2017-11-21 19:55:40 · 6368 阅读 · 0 评论 -
执行java可执行文件
有两种方式:1,命令如下,java -cp x.jar app.Run 1 2 3这里-cp表示在路径下查找,app是项目中的包名,Run是包含main函数的类,123是输入参数列表2,命令如下,java -jar x.jar 1 2 3这里的-jar是直接执行x.jar中的主函数(含main的类),123是输入参数列表 这里要注意在META-INF下的MANI...原创 2017-11-21 10:03:16 · 1118 阅读 · 0 评论 -
js报错:uncaught syntaxError:unexpected tokenj
在项目开发中发现前台报错,上网查询了一下原因。结合项目实际情况。应该是自己使用JSON.parse进行转换时发生了报错应该是在转换data时,data不满足转换的条件。解决方法:查看了传来的data的json结构。发现确实有问题。修改后,能够正常运行在进行类似的数据转换时,一定要对即将转换的数据做到心知肚明。不然就容易发生错误原创 2017-11-20 16:07:09 · 1499 阅读 · 0 评论 -
java代码实现添加自定义log
在项目中用户希望能够看到各个阶段进行了什么操作,通过下面的方法可以实现这一要求部分代码没有添加,可以自己实现,下面是功能的主体部分。entity是要修改的字符串的名字,a是修改前的值,b是修改后的值,public static final String generateLog(String entity, Object a, Object b) { if (a == n...原创 2018-05-02 21:10:54 · 2037 阅读 · 0 评论 -
springboot thymeleaf返回html
1,maven配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2,application.yml配置sprin...原创 2018-05-04 20:11:51 · 4846 阅读 · 0 评论 -
mybatis动态sql中的where标签的使用
在使用mybatis的动态sql时,有时候遇到根据条件判断添加where后面的筛选条件。会出现多余的“and”或者“or”,如下:<select id="findBlog" resultType="Blog"> SELECT * FROM BLOG WHERE <if test="state != null"> state = #...原创 2018-08-20 17:34:32 · 42978 阅读 · 5 评论 -
mybatis mapper.xml配置问题及解决方案总结
1,定义别名的时候使用了mysql内置的关键字You have an error in your SQL syntax:check the manual that .... 为了避免这种情况,可以先将sql在数据库客户端执行一遍,显示没有问题在拷贝到mapper中。2,bad sql grammar 出现这个原因是sql中出现语法错误,解决方法和1类似3,No enum...原创 2018-08-27 11:13:35 · 1331 阅读 · 0 评论 -
ffmpeg+javacv实现实验室蓝屏监控
背景:新项目中需要实验一个监控蓝屏警报功能当用户实验室设备蓝屏,通过系统可以给用户发送邮件等及时通知。技术:ffmpeg(需要安装)+javacv1,通过ffmpeg对视频进行切片(也就是把视频转为图片)命令如下:本系统采用的时摄像头提供的流直接剪切,固定大小的视频也可以。ffmpeg -rtsp_transport tcp -i "rtsp://admin:pwd@ip" -r...原创 2018-08-16 14:12:51 · 757 阅读 · 0 评论 -
java实现kafka消息发送和接收
之前写了一篇关于kafka集群搭建的点击打开链接。想了解的可以看下。今天这个实现是和前面集群对应的。使用的是新版的API。属性如果想定制自己的,需要到官方网址上面去查看一下对应的值。推介大家多去看看官方的介绍和demo。网上有些翻译过来的例子并不完善,最好是知己知彼,才能百战不殆maven: <dependency> <groupId>org.apache.ka...原创 2018-07-07 12:17:58 · 54569 阅读 · 0 评论