所有文章

  • 【原】DAO模块打包公用,避免项目中多处重复代码

    JAVA开发DAO模块打包公用,避免项目中多处重复代码

    Maven问世之后,创建工程的时候,都喜欢整成多包的项目,似乎多包已经成了大型项目标配,此时就会出现一个问题,实体Bean的代码可能要写多套,在一整个工程中就显得很冗余了,当数据库有改动时,需要修改多份重复的代码。可能大家不太明白,我来举个例子:拿我自己的博客项目来说,有一个用户访问的网站,有一个后台管理系统,此时对于博客中的文章来说,都是操作的article表的数据,对应javabean也就是Article.java,那么我就需要在项目中写两份一模一样的Article.java文件如上图,admin和jwcz两个工程中都需要相同的javabean...

    不忘初心 不忘初心 2019-04-08 围观(1098) 评论(0) 点赞(22) JAVA开发

    阅读更多
  • 【原】Maven打包环境切换了,但是复制文件失败

    JAVA开发Maven打包环境切换了,但是复制文件失败

    在Maven工程中,如果涉及到多环境切换,可以指定profile变量来控制,平时也都是这么用的,但是最近朋友的电脑却出现了一个问题,设置了profile不起作用,有一个项目在打包的时候一直都是拷贝第一个配置文件中的内容,就算是指定了其他profile的激活状态也不行,更诡异的地方在于:同一台机器,同一套maven配置,其他项目打包都是正常的,就是这个项目不行。<profiles><profile><id>dev</id><properties><package.environment...

    不忘初心 不忘初心 2019-04-02 围观(349) 评论(0) 点赞(27) JAVA开发

    阅读更多
  • 【原】springboot整合jpa启动报错'hibernate.dialect' not set

    JAVA开发springboot整合jpa启动报错'hibernate.dialect' not set

    公司的项目之前一直没有预发环境,最近有多余的机器,运维的同事拿来做预发机器,在启动项目的时候,报错“AccesstoDialectResolutionInfocannotbenullwhen'hibernate.dialect'notset“,觉着很诡异,什么代码和配置都没有改动过,在测试环境和生产环境中都是OK的,就是预发环境不行,具体错误信息如下:Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sessionFa...

    不忘初心 不忘初心 2019-04-01 围观(2502) 评论(0) 点赞(12) JAVA开发

    阅读更多
  • 【原】Java Socket编写基于UDP协议的简易聊天室

    JAVA开发Java Socket编写基于UDP协议的简易聊天室

    写完基于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 围观(1110) 评论(0) 点赞(13) JAVA开发

    阅读更多
  • 【原】Java Socket实现心跳机制的代码案例详解

    JAVA开发Java Socket实现心跳机制的代码案例详解

    在上一篇文章中,教大家利用socket写了一个简单的聊天室,只有消息的发送和接收以及系统广播,并没有实现心跳,聊天室中的人下线了之后,其他人收不到通知,在文章末尾处,我给出了几个实现心跳的思路,今天也来动手亲自实现一个(上篇文章中的一和三两种思路)。实现的功能:1、客户端和服务器之间保持心跳;2、客户端下线之后,服务器能够感知;3、客户端下线之后,服务器发送系统广播,通知聊天室中的其他人;4、服务器宕机之后,客户端能够感知,并退出聊天室;5、客户端主动退出,服务器发送系统广播;实现的思路:1、服务器和客户端都增加一个线程,专门负责心跳的时间记录;2...

    不忘初心 不忘初心 2019-03-28 围观(91) 评论(0) 点赞(14) JAVA开发

    阅读更多
  • 【原】Java Socket编写基于TCP协议的简易聊天室

    JAVA开发Java Socket编写基于TCP协议的简易聊天室

    Java提供了Socket套接字来实现网络编程,对TCP和UDP协议都有很好的的支持,在学习的时候,写的最多的可能就是聊天室了,很简单,但是能很好的将Socket和多线程结合起来。好久没写了,这几天在复习Socket知识点的时候,顺手也写了一个基于TCP协议的简易聊天室:服务端:负责消息转发和广播;客户端:发送消息,接收消息;服务器代码:packagecom.wolffy.socket;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;i...

    不忘初心 不忘初心 2019-03-27 围观(37) 评论(0) 点赞(13) JAVA开发

    阅读更多
  • 【原】浅谈Java Swing空布局,大道至简

    JAVA开发浅谈Java Swing空布局,大道至简

    JavaSwing,一个很古老的东西了,它是java用来写桌面客户端程序的,但是在BS架构发展的风生水起的今天,CS架构却几乎止步不前,不说别的,就因为UI和体积这两个问题,就是横在它面前的两座大山,同样一个产品,用其他CS架构的语言来实现,比使用swing来实现要简单的多,这也似乎注定了它的前途一片黑暗(至少目前看起来如此,官方也没有任何改进优化的意思,似乎已经放弃了它)。但是这个东西也不是一文不值的,它虽然UI丑到爆炸,但是使用了超级多的java设计模式,也还是有值得学习的地方,今天我们来聊一下它的布局Layout。跟Android很像,它也提...

    不忘初心 不忘初心 2019-03-26 围观(34) 评论(0) 点赞(12) JAVA开发

    阅读更多
  • 【原】URLConnection利用VPN代理工具访问外网

    JAVA开发URLConnection利用VPN代理工具访问外网

    项目中使用的是Google的推送服务,今天线上出了问题,本地需要调试,但是做JUnit单元测试的时候,一直都是连接超时,而本机又是开了翻墙代理的,在浏览器中访问Google也都没问题。起初以为是IDEA需要翻墙才可以,百度查了一下,还真有人提到过这个问题,不过大都是说在线安装插件的时候需要翻墙,貌似和我这个关系不太大,虽然怀疑,但我还是给IDEA配置了HTTPProxy。上图中,红色框起来的两种方式,我都一一做了测试,但是没有一个成功的,依旧都还是SocketTimeoutException了。继续查阅资料,又看到有人提到说在启动项目的时候指定VM...

    不忘初心 不忘初心 2019-03-25 围观(1290) 评论(1) 点赞(23) JAVA开发

    阅读更多
  • 【原】常用的java绘图api(一)

    JAVA开发常用的java绘图api(一)

    Graphics,是java中画图的对象,从它衍生出来的还有Graphics2D对象,既可以简单的写写字,也可以画一些图形,如:矩形、圆形、三角形、多边形,还有一些复杂的API可以实现炫酷的效果,如:旋转、渐变。但是Swing这个东西现在用的并不多了,所以Java绘图也用的不多,最近无意中翻到了在之前公司做过的一个画图的项目,也有写过博客做分享(http://www.zuidaima.com/share/2457951855217664.htm),今天来整理一些常用的绘图API。setColor:设置画笔颜色getColor:获取画笔颜色/***G...

    不忘初心 不忘初心 2019-03-24 围观(2496) 评论(0) 点赞(13) JAVA开发

    阅读更多
  • 【原】JPA报错“No identifier specified for entity”的原因

    JAVA开发JPA报错“No identifier specified for entity”的原因

    之前在SSH框架中,用过Hibernate这个ORM框架,之后一直都是用的是Mybatis,最近公司里面使用springboot的框架中集成了JPA,虽然我觉着各种不好,但是讲真的还是挺好用,跟Hibernate相比还要简单,基本上都不用自己怎么写查询,今天在使用的时候手一抖,少复制了点儿代码,直接导致启动时报了一个错误“No identifier specified for entity”。2019-03-2213:49:05,418ERRORSpringApplication:Applicationstartupfailedorg.spring...

    不忘初心 不忘初心 2019-03-23 围观(911) 评论(0) 点赞(11) JAVA开发

    阅读更多
  • 【原】HashSet的实现原理,与HashMap有何区别和联系

    JAVA开发HashSet的实现原理,与HashMap有何区别和联系

    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 围观(1579) 评论(0) 点赞(13) JAVA开发

    阅读更多
  • 【原】一个简单但实用的生成apiKey随机密钥的算法

    JAVA开发一个简单但实用的生成apiKey随机密钥的算法

    在项目开发工作中,免不了需要和其他系统对接,为了安全性,提供方总会分配给我们一个apiKey和apiSecret用来鉴权,一般都是数字和大小写字母的混合,最近在设计项目中的支付网关时,也用到了这个东西,不过这次不再是别人给我了,而是我设计给需要对接网关的系统。顺手将我用到的代码分享给大家,非常简陋,但是基本的功能还是可以满足的。/***生成指定长度的随机密钥*@paramlength长度*@return密钥字符串*/publicstaticStringuniqueId(intlength){//字符源,可以根据需要删减Stringsource="a...

    不忘初心 不忘初心 2019-03-21 围观(1030) 评论(0) 点赞(12) JAVA开发

    阅读更多
  • 【原】spring项目中利用redis + lua脚本简单实现分布式锁

    JAVA开发spring项目中利用redis + lua脚本简单实现分布式锁

    在以往的单机系统中,为了做到线程安全,我们可以使用jdk提供给我们的synchronized关键字,也可以使用juc包下面的Lock,但是在现在流程的SOA服务中,显然就没法用了,毕竟服务器再也不是同一台了,你管得了自己,管不了别人。有问题,那就会有解决方案,那就是分布式锁,通常利用Redis或者Zookeeper来实现,亦或者是利用三方框架来解决(redisson),今天来教大家用redis实现一个超级简单的分布式锁。实现思路:setnx+luasetNx:全名“setifnotexist”,如果key不存在就set,如果key已存在就不set;...

    不忘初心 不忘初心 2019-03-18 围观(743) 评论(0) 点赞(11) JAVA开发

    阅读更多
  • 【原】从源码层面分析Vector和ArrayList的区别

    JAVA开发从源码层面分析Vector和ArrayList的区别

    提到Vector和ArrayList的区别,张口就来的是什么?Vector是线程安全的,而ArrayList不是线程安全的。今天我们从源码层面来分析一下,这二者到底有何相似之处,又有何不同之处?/***Thearraybufferintowhichthecomponentsofthevectorare*stored.Thecapacityofthevectoristhelengthofthisarraybuffer,*andisatleastlargeenoughtocontainallthevector'selements.**<p>...

    不忘初心 不忘初心 2019-03-17 围观(518) 评论(0) 点赞(12) JAVA开发

    阅读更多
  • 【原】ArrayList初始大小、上限、扩容机制图文详解

    JAVA开发ArrayList初始大小、上限、扩容机制图文详解

    在使用arraylist的时候,从来没有手动给它指定过大小,每次使用都是直接newarraylist(),但是那么它的默认大小是多少呢?超出这个默认大小之后,它又是如何扩容的呢?扩容的前提条件是什么呢?上限又是多少呢?想弄清楚这个问题,最简单有效的方式就是看源码,今天就来给大家看一下它的扩容机制。本文中以jdk1.8.0_121为例,以截取代码片段的方式来逐一给大家分析:默认容量有一个DEFAULT_CAPACITY变量,大小为10/***Defaultinitialcapacity.*/privatestaticfinalintDEFAULT_C...

    不忘初心 不忘初心 2019-03-17 围观(1961) 评论(0) 点赞(23) JAVA开发

    阅读更多

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们