所有文章
-
【原】DAO模块打包公用,避免项目中多处重复代码
JAVA开发Maven问世之后,创建工程的时候,都喜欢整成多包的项目,似乎多包已经成了大型项目标配,此时就会出现一个问题,实体Bean的代码可能要写多套,在一整个工程中就显得很冗余了,当数据库有改动时,需要修改多份重复的代码。可能大家不太明白,我来举个例子:拿我自己的博客项目来说,有一个用户访问的网站,有一个后台管理系统,此时对于博客中的文章来说,都是操作的article表的数据,对应javabean也就是Article.java,那么我就需要在项目中写两份一模一样的Article.java文件如上图,admin和jwcz两个工程中都需要相同的javabean...
不忘初心 2019-04-08 围观(1151) 评论(0) 点赞(22) 【JAVA开发】
阅读更多 -
【原】Maven打包环境切换了,但是复制文件失败
JAVA开发在Maven工程中,如果涉及到多环境切换,可以指定profile变量来控制,平时也都是这么用的,但是最近朋友的电脑却出现了一个问题,设置了profile不起作用,有一个项目在打包的时候一直都是拷贝第一个配置文件中的内容,就算是指定了其他profile的激活状态也不行,更诡异的地方在于:同一台机器,同一套maven配置,其他项目打包都是正常的,就是这个项目不行。<profiles><profile><id>dev</id><properties><package.environment...
不忘初心 2019-04-02 围观(430) 评论(0) 点赞(27) 【JAVA开发】
阅读更多 -
【原】springboot整合jpa启动报错'hibernate.dialect' not set
JAVA开发公司的项目之前一直没有预发环境,最近有多余的机器,运维的同事拿来做预发机器,在启动项目的时候,报错“AccesstoDialectResolutionInfocannotbenullwhen'hibernate.dialect'notset“,觉着很诡异,什么代码和配置都没有改动过,在测试环境和生产环境中都是OK的,就是预发环境不行,具体错误信息如下:Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sessionFa...
不忘初心 2019-04-01 围观(2621) 评论(0) 点赞(12) 【JAVA开发】
阅读更多 -
【原】Java Socket编写基于UDP协议的简易聊天室
JAVA开发写完基于TCP协议的聊天室,再来尝试写一个UDP协议的聊天室,由于协议的不同,所以实现起来也是有很大的不同,先来简单的看一下这两个协议的区别:1、TCP是长连接,UDP是无连接;2、TCP能保证数据包的正确性,UDP会有丢包;3、TCP能保证数据包的顺序性,UDP保证不了;4、TCP对系统资源需求大,UDP不可靠,所以需求小;5、TCP由于做了一系列的保证,所以速度慢,UDP无需这些保证,所以速度快,实时性高;6、TCP会有粘包问题,UDP会有分包问题;关于分包:UDP受以太网限制,每一个包的最大体积是65507字节,约等于64K。为什么最大是65...
不忘初心 2019-03-29 围观(1133) 评论(0) 点赞(13) 【JAVA开发】
阅读更多 -
【原】Java Socket实现心跳机制的代码案例详解
JAVA开发在上一篇文章中,教大家利用socket写了一个简单的聊天室,只有消息的发送和接收以及系统广播,并没有实现心跳,聊天室中的人下线了之后,其他人收不到通知,在文章末尾处,我给出了几个实现心跳的思路,今天也来动手亲自实现一个(上篇文章中的一和三两种思路)。实现的功能:1、客户端和服务器之间保持心跳;2、客户端下线之后,服务器能够感知;3、客户端下线之后,服务器发送系统广播,通知聊天室中的其他人;4、服务器宕机之后,客户端能够感知,并退出聊天室;5、客户端主动退出,服务器发送系统广播;实现的思路:1、服务器和客户端都增加一个线程,专门负责心跳的时间记录;2...
不忘初心 2019-03-28 围观(178) 评论(0) 点赞(14) 【JAVA开发】
阅读更多 -
【原】Java Socket编写基于TCP协议的简易聊天室
JAVA开发Java提供了Socket套接字来实现网络编程,对TCP和UDP协议都有很好的的支持,在学习的时候,写的最多的可能就是聊天室了,很简单,但是能很好的将Socket和多线程结合起来。好久没写了,这几天在复习Socket知识点的时候,顺手也写了一个基于TCP协议的简易聊天室:服务端:负责消息转发和广播;客户端:发送消息,接收消息;服务器代码:packagecom.wolffy.socket;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;i...
不忘初心 2019-03-27 围观(108) 评论(0) 点赞(13) 【JAVA开发】
阅读更多 -
【原】浅谈Java Swing空布局,大道至简
JAVA开发JavaSwing,一个很古老的东西了,它是java用来写桌面客户端程序的,但是在BS架构发展的风生水起的今天,CS架构却几乎止步不前,不说别的,就因为UI和体积这两个问题,就是横在它面前的两座大山,同样一个产品,用其他CS架构的语言来实现,比使用swing来实现要简单的多,这也似乎注定了它的前途一片黑暗(至少目前看起来如此,官方也没有任何改进优化的意思,似乎已经放弃了它)。但是这个东西也不是一文不值的,它虽然UI丑到爆炸,但是使用了超级多的java设计模式,也还是有值得学习的地方,今天我们来聊一下它的布局Layout。跟Android很像,它也提...
不忘初心 2019-03-26 围观(88) 评论(0) 点赞(12) 【JAVA开发】
阅读更多 -
【原】URLConnection利用VPN代理工具访问外网
JAVA开发项目中使用的是Google的推送服务,今天线上出了问题,本地需要调试,但是做JUnit单元测试的时候,一直都是连接超时,而本机又是开了翻墙代理的,在浏览器中访问Google也都没问题。起初以为是IDEA需要翻墙才可以,百度查了一下,还真有人提到过这个问题,不过大都是说在线安装插件的时候需要翻墙,貌似和我这个关系不太大,虽然怀疑,但我还是给IDEA配置了HTTPProxy。上图中,红色框起来的两种方式,我都一一做了测试,但是没有一个成功的,依旧都还是SocketTimeoutException了。继续查阅资料,又看到有人提到说在启动项目的时候指定VM...
不忘初心 2019-03-25 围观(1528) 评论(1) 点赞(23) 【JAVA开发】
阅读更多 -
【原】常用的java绘图api(一)
JAVA开发Graphics,是java中画图的对象,从它衍生出来的还有Graphics2D对象,既可以简单的写写字,也可以画一些图形,如:矩形、圆形、三角形、多边形,还有一些复杂的API可以实现炫酷的效果,如:旋转、渐变。但是Swing这个东西现在用的并不多了,所以Java绘图也用的不多,最近无意中翻到了在之前公司做过的一个画图的项目,也有写过博客做分享(http://www.zuidaima.com/share/2457951855217664.htm),今天来整理一些常用的绘图API。setColor:设置画笔颜色getColor:获取画笔颜色/***G...
不忘初心 2019-03-24 围观(2639) 评论(0) 点赞(13) 【JAVA开发】
阅读更多 -
【原】JPA报错“No identifier specified for entity”的原因
JAVA开发之前在SSH框架中,用过Hibernate这个ORM框架,之后一直都是用的是Mybatis,最近公司里面使用springboot的框架中集成了JPA,虽然我觉着各种不好,但是讲真的还是挺好用,跟Hibernate相比还要简单,基本上都不用自己怎么写查询,今天在使用的时候手一抖,少复制了点儿代码,直接导致启动时报了一个错误“No identifier specified for entity”。2019-03-2213:49:05,418ERRORSpringApplication:Applicationstartupfailedorg.spring...
不忘初心 2019-03-23 围观(956) 评论(0) 点赞(11) 【JAVA开发】
阅读更多 -
【原】HashSet的实现原理,与HashMap有何区别和联系
JAVA开发JDk为我们提供了一些常用的数据结构,List、Map、Set这三种是使用最广泛的,List存放连续的数据,并允许为null,Map以键值对的形式存放数据,允许key和value为null,Set则可以存储无重复的数据。1、在map中,如果使用了相同的key,后面的value就会将前面的value覆盖掉,这也相当于说是key是唯一的,那这个作用岂不是和Set一样了?2、这二者之间又有什么区别和联系呢?3、Java数据结构中,除了数组和链表,似乎也没有什么可以直接和Set进行挂钩呢?之前的文章中,我们分析了ArrayList的源代码,这次我们同样来分...
不忘初心 2019-03-22 围观(1604) 评论(0) 点赞(13) 【JAVA开发】
阅读更多 -
【原】一个简单但实用的生成apiKey随机密钥的算法
JAVA开发在项目开发工作中,免不了需要和其他系统对接,为了安全性,提供方总会分配给我们一个apiKey和apiSecret用来鉴权,一般都是数字和大小写字母的混合,最近在设计项目中的支付网关时,也用到了这个东西,不过这次不再是别人给我了,而是我设计给需要对接网关的系统。顺手将我用到的代码分享给大家,非常简陋,但是基本的功能还是可以满足的。/***生成指定长度的随机密钥*@paramlength长度*@return密钥字符串*/publicstaticStringuniqueId(intlength){//字符源,可以根据需要删减Stringsource="a...
不忘初心 2019-03-21 围观(1232) 评论(0) 点赞(12) 【JAVA开发】
阅读更多 -
【原】Linux安装zip unzip解压工具
Windows中有很多可视化的解压工具,但是在Linux中,大多数都是命令行操作,所以相对应的也就有解压缩的命令:zip、unzip,不过这个命令不是自带的,需要手动安装。正好今天碰到一个,就给大家演示一下效果,也教一下大家如何在linux中安装zip、unzip工具。服务器上有一个jar包,是之前打包传上去的,但是数据库却连的不对,本来应该连到线上环境,但是却连到了测试环境,但是配置文件是抽出来打包到公共的config.jar中,所以想看一下也看不到,除非将config.jar下载到本地解压再反编译,但是这样无疑浪费了太多时间,而且也很麻烦。所以...
-
【原】spring项目中利用redis + lua脚本简单实现分布式锁
JAVA开发在以往的单机系统中,为了做到线程安全,我们可以使用jdk提供给我们的synchronized关键字,也可以使用juc包下面的Lock,但是在现在流程的SOA服务中,显然就没法用了,毕竟服务器再也不是同一台了,你管得了自己,管不了别人。有问题,那就会有解决方案,那就是分布式锁,通常利用Redis或者Zookeeper来实现,亦或者是利用三方框架来解决(redisson),今天来教大家用redis实现一个超级简单的分布式锁。实现思路:setnx+luasetNx:全名“setifnotexist”,如果key不存在就set,如果key已存在就不set;...
不忘初心 2019-03-18 围观(759) 评论(0) 点赞(11) 【JAVA开发】
阅读更多 -
【原】从源码层面分析Vector和ArrayList的区别
JAVA开发提到Vector和ArrayList的区别,张口就来的是什么?Vector是线程安全的,而ArrayList不是线程安全的。今天我们从源码层面来分析一下,这二者到底有何相似之处,又有何不同之处?/***Thearraybufferintowhichthecomponentsofthevectorare*stored.Thecapacityofthevectoristhelengthofthisarraybuffer,*andisatleastlargeenoughtocontainallthevector'selements.**<p>...
不忘初心 2019-03-17 围观(537) 评论(0) 点赞(12) 【JAVA开发】
阅读更多
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们