- 博客(788)
- 资源 (36)
- 收藏
- 关注
原创 maven+本地jar后,普通项目打包
项目中用到本地jar和maven,java -jar 提示没有主清单1、项目中依赖本地包<dependency> <groupId>aspose-words</groupId> <artifactId>aspose-words-jdk16</artifactId> <version>14.9.0</version> <scope>system</sc
2022-01-16 10:37:59
343
原创 spring,自定义注解,工厂模式,策略模式优化 if else,jdk1.7
最近项目中使用mqtt监听消息,再根据消息做各种处理,使用大量的if else,代码异常难维护,参考的地址找不到了。。。以下为实现:接收mqtt的接口类package com.mhm.mqttlistener;import org.apache.log4j.Logger;public interface MqttService { public void send(String topic, String content) throws Exception; pub.
2020-07-17 12:15:36
472
原创 springmvc 集成 swagger2,同时项目中遗留struts2的解决办法
默认项目已经支持springmvc1、引入jar包<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.7</version> </dependency> <dependency> <gro
2020-06-22 11:25:15
741
原创 mongodb shell脚本 增删改查
MongoDB第二节课作业配置环境变量后,命令行输入:mongo//1.进入my_test数据库show dbs;use my_test;show collections;//2.向数据库的user集合中插入一个usename为deer的文档 //3.查询user集合中的文档//4.向数据库的user集合中插入一个usename为james的文档 //5.查询数据...
2019-12-24 15:42:09
434
原创 byte,short,int等类型的转换以及原理,原码,反码,补码
理论:八个比特(Bit)称为一个字节(Byte),最大[11111111],即FF; 两个字节称为一个字(Word,Short),最大[1111 1111 1111 1111],即FF FF, 两个字称为一个双字(Dword,Int),最大[1111 1111 1111 1111 1111 1111 1111 1111],即FF FF FF FF 两个双字称为一个四字(Qword,lon...
2019-08-13 16:39:27
1644
原创 Maven打jar包 Unable to locate Spring NamespaceHandler for XML schema namespace rabbit
Maven打jar包正常,但执行java -jar xxx.jar时,抛异常。Unable to locate Spring NamespaceHandler for XML schema namespace rabbit具体什么原因导致的未能查出,此处仅给出解决办法:srping-rabbit.jar中的MATE-INF中的spring.handlers,spring.schemas...
2019-05-22 09:19:24
677
原创 多线程 fork join 实现累加
ForkJoin框架,可做同步和异步处理,可有返回值和无返回值调用。invokeAll为同步调用;execute为异步调用;RecursiveAction,用于没有返回结果的任务;RecursiveTask,用于有返回值的任务;这里用同步调用实现累加package com.cz.mhm.forkjoin.sum;import java.lang.reflect.Arr...
2019-05-04 15:44:17
315
原创 多线程,wait/notifyall 模拟枪的压弹和射击
面试题:采用多线程技术,例如wait/notify,设计实现一个符合生产者和消费者问题的程序,对某一个对象(枪膛)进行操作,其最大容量是20颗子弹,生产者线程是一个压入线程,它不断向枪膛中压入子弹,消费者线程是一个射出线程,它不断从枪膛中射出子弹。package com.cz.mhm.gun;public abstract class AbstractGun { /** ...
2019-05-04 13:04:06
657
原创 MyEclipse maven 远程 自动 部署项目到tomcat7
1、tomcat文件夹中的tomcat.conf.tomcat-users.xml中配置:<role rolename="manager-gui"/><role rolename="manager-script"/><user username="admin" password="xxx" roles="manager-script"/><us...
2019-04-26 18:57:18
239
原创 微信openid和已有系统的用户绑定2
1、基本配置:配置接口对应代码:WXPublicUtils是微信提供的java示例中的代码。 @RequestMapping(value="/", produces="text/html;charset=UTF-8") @ResponseBody public Object main(HttpServletRequest request, HttpServletR...
2019-04-15 09:30:51
6685
3
原创 微信openid和已有系统的用户绑定
微信公众号提供OAuth2.0验证,但是如果在只想用openid,则只需自己的业务平台把openid和已有的用户名绑定即可。但这种方式绑定有个弊端,下一篇重写个按微信文档的:按微信文档写的:https://blog.youkuaiyun.com/hongmin118/article/details/89305861所有的操作必须要到微信页发起,也就是说,点击“我的数据”->后台判断没绑定-&...
2019-04-08 19:01:06
10394
1
原创 微信公众号开发-三级域名-token验证-测试服-生产服
微信接口需要token验证,同时有些功能又需要本地调试,所以用nginx走反向代理,把微信测试的地址映射到自己的开发机上。nginx:阿里云三级域名设置:springmvc.action:注意:一定要在@RequestMapping中加UTF-8的参数,否则微信平台验证失败produces="text/html;charset=UTF-8"...
2019-04-06 14:26:12
1049
转载 搜索指定后缀文件
package com.mhm.utils;import java.io.File;import java.util.ArrayList;public class Test { private static int ScanSuffixCount = 0; private static ArrayList<String> ScanSuffixFiles ...
2019-01-23 09:35:55
1481
原创 eclipse git push 一直需要输入远程push地址的问题
在eclipse中使用git的时候,前一次push完之后,再push一次时,总会又出现让你重新填写push地址。解决办法: eclipse –> Window –> Team –> configuration,Respository Settings 最上面有个Respository,找到你现在的项目,点击右边的open,会打开git的配置。 [core] ...
2018-10-05 10:20:26
683
1
原创 org.apache.maven.archiver.mavenarchiver.getmanifest 解决
原因就是你的maven的配置文件不是最新的help ->Install New Software -> add ->https://otto.takari.io/content/sites/m2e.extras/m2eclipse-mavenarchiver/0.17.2/N/LATEST可能无法访问,改用此链接:http://repo1.maven.org/maven2...
2018-10-03 21:43:47
588
原创 多线程:wait/notifyAll,实现生产者消费者
注意,一般使用notifyAll,如果使用notify,则只会通知一个wait的线程,notifyAll可防止通知信号丢失wait会释放锁,notify/notifyAll不会释放锁,需要等syn代码块执行完才会释放锁package com.chapter1.ch1.wait;public interface AbstractStorage { void consume...
2018-09-26 14:46:55
240
原创 mongodb.aggregate聚合 分组 统计 排序
查询controllerCode以及collectType为4的数据,按controllerCode分组,统计每个controllerCode对应多少数据,并按此数据排序:db.dataCollection.aggregate( { $match: {"controllerCode":{$in:['153862','153867','153868','153869','1...
2018-05-24 16:32:02
20696
原创 使用studio 3T按日期查询mongodb
sutdio 3T显示日期默认为UTC(0时区)时间,需改成本地的东八区时间。Edit->Preferences:按日期查询的两种方式:1、// 按ISODate查询{"controllerCode":"153911", "collectType":4,"createDate": { "$gte" : ISODate("2018-05-24T00:00:00Z") }}2、
2018-05-24 15:22:32
5572
原创 JAVA 代码,在linux中启动tomcat
public static void main(String[] args) { String cmdStart = "echo 'root' | sudo -S /usr/tomcat7069/bin/startup.sh"; // 把密码root给sudo用 String cmdStop = "echo 'root' | sudo -S /usr/tomcat7069/bin/shut...
2018-03-27 11:25:05
1215
原创 通过tomcat.mamager页面远程管理tomcat
通过java访问tomcat的manager来管理。此方法无法达到重启tomcat的目的,只能重启应用。先在tomcat中修改tomcat-users.xml<role rolename="admin"/><role rolename="admin-gui"/><role rolename="manager"/><role rolename=&q
2018-03-22 20:07:32
880
原创 MyEclipse使用Maven的注意点
1、下载maven,修改conf/settings.xml中的本地仓库默认位置,改为maven/repository;2、修改MyEclipse->Preferences->User Settings 中 Maven的设置,全部指向刚才maven目录下的;3、点击OK后,等待maven下载完仓库;4、新建web,选中支持Maven;5、在使用eclipse构建maven项目时,突然出现...
2018-02-28 15:05:02
318
原创 Netty.Decode, 以特殊的开始符结束符为协议的自定义解码
背景:1、网上的自定义解码比较少,都是以TLV格式的,需研究以备后续使用;2、为支持老项目,必须用起始符和结束符的协议;实现:1、继承 ByteToMessageDecoder;2、重写decode方法,在decode方法中,如果对收到的buf不做处理,那么会一直积累在buf中,例如,第一次发送一个字节,则buf的readableBytes长度为1,如果再发一个字节,当
2017-11-28 09:22:17
4165
原创 Netty.心跳
1、Netty的心跳,不像Mina,Mina有个心跳基类,而Netty没有,Netty的心跳也是继承ChannelInboundHandlerAdapter重写channelRead;以下代码实现:服务端30读空闲,则给客户端发送‘+’,客户端收到后,回'-',如果服务端连续发送3次还是未收到‘-’,则断开连接TcpServerInitializer 中主要看:.add
2017-11-27 09:47:51
372
原创 多线程master-worker设计
Task:package com.mhm.masterworker;/** * 累加一共有多少钱 * @author Administrator * */public class Task { private int id; private String name; private int price; public int getId() { retur
2017-11-09 14:04:44
279
原创 linux 备份数据库到 NAS
先把nas开启NFS服务再把NAS的共享盘挂载到Linux里,sudo mkdir mybackupsudo mount -o username=***,password=*** //192.168.0.***/database /mnt/mybackupshell注意权限#!/bin/bash# Database infoDB_USER="root"D
2017-11-06 17:52:40
2868
原创 sublime3,加入Package Control
网上有时找的不对,直接放官网链接https://packagecontrol.io/installation#st3
2017-11-05 16:18:31
238
原创 DelayQueue,网吧记时
Wangmin:package com.mhm.delayQueue;import java.util.concurrent.Delayed;import java.util.concurrent.TimeUnit;public class Wangmin implements Delayed { private int id; private String name;
2017-11-02 19:27:36
335
原创 CountDownLatch的使用方法
使用场景:系统启动时,需要校验网络、数据库、中间件等各种依赖环境,此时,可用CountDownLatch来做处理BaseCheck:package com.mhm.countdownLatch3;import java.util.concurrent.CountDownLatch;public abstract class BaseCheck implements
2017-11-02 17:58:16
383
原创 高性能无阻塞无界队列 ConcurentLinkedQueue
public static void main(String[] args) { ConcurrentLinkedQueue clq = new ConcurrentLinkedQueue<>(); clq.offer("a"); clq.offer("b"); clq.offer("c"); clq.offer("d"); clq.add("e"); // 注意:在Con
2017-10-31 11:15:16
476
原创 安全单例模式
package com.mhm.thread;public class Singleton { private static Singleton single = new Singleton(); public static Singleton getInstance() { return Singleton.single; }}
2017-10-30 20:39:13
227
原创 double 取 四舍五入
BigDecimal bd = new BigDecimal(offlineRate);offlineRate = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
2017-10-18 09:43:54
807
原创 @selector(xxxx)
selector可以叫做选择器,其实指的就是对象的方法,也可以理解为C语言里面的函数指针,在面向对象里面的对应概念。@selector(xxxx)的作用是找到名字为xxxx的方法。一般用于[a performSelector:@selector(b)];就是说去调用a对象的b方法,和[a b];的意思一样,但是这样更加动态一些。@selector(xxxx)返回的类型是SEL,
2017-10-18 09:43:43
341
原创 sqlite中对日期的操作
在android中使用sqlite时,日期处理比较特殊,网上找了很多种方法,试验出一种相对来说比较合适的: 把日期类型作为integer建表,在插入数据库时,用new Date().getTime()存入,取出时,再转为Date类型Date date = new Date(cursor.getLong(i)); 取某个时间段内的数据时,把查询的日期转为long再转为string即可
2017-10-17 18:25:24
453
原创 android.去头样式
AndroidManifest.xml中修改:android:theme="@android:style/Theme.Light.NoTitleBar" >
2017-10-17 18:25:15
293
原创 android.文字阴影
<TextView android:id="@+id/tv_verName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" androi
2017-10-17 18:25:09
344
原创 要口算题,那就写个吧。。。
要口算题,那就写个吧。。。 /** * 生成20以内的加减口算题 */ private static void generateMental() { Random ra = new Random(); int count = 0; while (count < 100) { int firstSymbol = ra.nextInt(2) %
2017-10-17 18:25:01
331
上传文件 上传大小限制问题
2013-05-14
mavin spring4 mvc mybatis 整合 带事务,REST风格
2015-12-04
mavin spring4 mvc mybatis 整合 带REST风格
2015-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人