- 博客(67)
- 资源 (1)
- 收藏
- 关注
翻译 如何管理程序员
要开发软件,你需要程序员。不幸的是,请他们太贵了,而且他们又懒,又几乎不可能被控制。他们开发的软件不管有没有用,你每个月还是要发工资。当然,少花点钱最好。可是,有时候他们会发现自己的工资太低了,可能就会辞职。如何预防他们辞职呢?很可惜,我们不能再使用暴力了,但有一些其他的方法,让我来分享一下。▌薪资保密不要让他们讨论工资,必须对自己的薪酬保密。要警告他们,甚至要让他们签署保密协...
2020-04-14 19:56:19
1054
原创 怎么定位线上问题,比如说CPU 或者是内存
通过 top 命令找到 CPU 消耗最高的进程,并记住进程 ID。再次通过 top -Hp [进程 ID] 找到 CPU 消耗最高的线程 ID,然后找到线程ID是十进制的,把他转换成十六进制,然后用jstack找到当前线程的jstack.log的快照,然后分析他的问题。内存:其实对于内存的话无非就是2种一直是内存溢出,另外一种是内存不健康,就是内存泄露 内存溢出的情况可以通过加上 -XX:+He...
2020-03-09 20:04:19
255
原创 认识Quartz
定时任务框架,基于数据库的高可用方案。概念了解Job表示一个工作,要执行的具体内容。此接口中只有一个方法void execute(JobExecutionContext context)JobDetailJobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。Trigger代表一个调...
2020-01-14 11:26:39
531
原创 关于Shiro 权限标签
前端HTML中:导入标签库<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>使用方式: <shiro:hasPermission name="setTrade:apr"> <button type="...
2020-01-13 18:09:48
412
原创 ResourceBundle读取配置文件与HttpClient结合使用
1 Controller.javatry { HttpClient client = new HttpClient(); HttpMethod method = new PostMethod(); String host = PropertiesUt...
2020-01-13 13:58:41
149
转载 Lombok的基本使用
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。任何技术的出现都是为了解决某一类问题,如果在此基础上再建立奇技淫巧,不如回归Java本身,应该保持合理使用而不滥用。Lombok的使用非常简单:1)引入相应的maven包...
2020-01-10 15:04:43
716
原创 XmlUtil--Obj2Xml与Xml2Json
coding:public class XmlUtil { public static final Logger log = LoggerFactory.getLogger(XmlUtil.class); /** * @param obj 传入的对象 * @return 返回对象转换xml字符串 */ public static S...
2020-01-10 11:31:09
433
原创 HTML each遍历展示并在js中获取值的方式
html:<div class="row"> <div class="col-sm-12"> <div class="form-group"> <div class="col-xs-12" th:each="FileInfo: ${FileInfoList}"> &...
2020-01-08 10:55:57
2837
转载 软件工程师的工作经验总结
前言这是在网上看到的一篇文章,写的是一个从事软件工程开发的大牛对从业七年的一些经验总结。感觉挺不错,转来与大家分享了,下面是正文。分享1、分享第一条经验:“学历代表过去,能力代表现在,学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕...
2019-12-13 14:34:07
610
原创 若依框架--上传下载(基于spring boot + bootstrap)
最近基于若依框架做了一套后台管理系统,使用到上传和下载功能,一起学习和分享下;上传功能前端:引入样式: <th:block th:include="include :: bootstrap-fileinput-css"/>然后div样式: <div class="row"> <div class=...
2019-12-13 10:47:29
14179
6
翻译 Spring Boot +web service 服务端示例
Spring Boot的简单性快速创建SOAP Web服务目录1.技术堆栈2.项目结构3.创建Spring Boot项目4.创建SOAP域并生成Java代码5.创建SOAP WS端点6.添加配置Bean7.演示8.摘要1.技术栈JDK 1.8,Eclipse,Maven –开发环境 春季启动–基础应用程序框架 wsdl4j–用于为我们的服务发布WSDL SOA...
2019-11-27 09:56:58
717
转载 Spring TaskExecutor
TaskExecutor抽象Spring 2.0 为执行器(Executor)处理引入了一个新的抽象层。Executor是Java 5的名词,用来表示线程池的概念。之所以用这个奇怪的名词,是因为实际上不能保证底层实现的确是一个池。实际上,很多情况下,executor只是单线程。Spring的抽象层帮助你把线程池引入到Java 1.3和1.4环境中,同时隐藏了 1.3, 1.4, 5, 和 Ja...
2019-11-20 14:18:10
496
翻译 Spring整合Rabbitmq
发送者spring配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="htt...
2019-11-20 10:57:21
163
转载 一个人最好的状态
知道自己要什么,知道自己每天在干什么,不着急,不盲从,一点点接近目标。着眼于自己眼前的,追逐自己能够得着的,对别人的成就衷心祝福,对自己的未来充满信心。学着对别人好,试着多做一些力所能及的事情,哪怕是陌生人,一样报以微笑,一样不吝啬施以帮助。有自律的生活,虽然可能千篇一律,虽然短时间可能见不到成效,但还是努力着坚持,只为了有个好状态,只为了不那么早油腻。可能没有太大的成就,但有端正...
2019-11-19 21:00:52
148
原创 随笔记1
1 was命令操作停止:cd /home/../../bin/stopManager.sh 停管理器cd /home/../../bin/stopNode.sh 停节点cd /home/../../bin/stopServer.sh 停服务杀进程 ps -ef|grep java kill -9查看java进程 ps -ef|grep java启动:cd /ho...
2019-11-19 20:13:33
137
原创 定时任务更新数据库---非常规思路
需求:设置定时任务,将数据库用户名全称按照固定规则更新用户简称(新增一列);因为在进行交易时,若并发量过大去处理会影响性能。思路:1. 使用do...while循环执行数据库查询,查询语句加limit限制为100条每次,循环更新每条记录,当查询的结束集不是100条时,认为是最后一次查询,退出while循环。2.常规方式在项目中做定时任务:@Scheduled(cron = "0/...
2019-11-19 18:06:26
2392
原创 定时任务下发通知并更新数据库记录
使用的技术栈:spring @Component注解@Autowired资源注入newFixedThreadPool固定大小的线程池ReentrantLock同步锁CountDownLatch倒计时器,是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。HTTP表单请求package com.zcy.job;import com.aliba...
2019-11-19 10:57:37
526
翻译 分析线程池源码
为什么要用线程池? 降低系统资源消耗。 提高线程可控性。 如何创建使用线程池?JDK8提供了五种创建线程池的方法:1.创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。publicstaticExecutorServicenewFixedThreadPool(intnThreads){returnnewThreadPool...
2019-11-19 10:13:36
222
2
原创 开发过程中常见的注解
@Retention注解 用于表示注解的生命周期1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,...
2019-11-15 15:22:49
217
原创 Java-Web获取客户端真实IP
先上自己的代码: private void recordIP(HttpServletRequest request) { final String ip = WebUtil.retrieveClientIp(request); WebUtil.setIp(ip); LOG.debug("Send request uri: {}, from IP...
2019-11-15 14:12:46
605
翻译 fastjson反序列化方法JSON.parseObject(String str,Class<T> clazz)
fastjson这一工具包帮助我们进行java对象和json格式的字符串之间的相互转换。对象到字符串的过程,我们称之为序列化;反之,我们称为反序列化。现在我们就来谈谈fastjson提供的反序列化方法,本篇只讨论按照指定的字节码返回相应对象的的反序列化方法,该方法有多种重载形式,按照重叠构造的模式设计。常用的入口为:JSON.parseObject(String text, Class<...
2019-11-15 09:57:52
12710
原创 开发过程中--常见错误解决
1 字符串越界错误 java.lang.StringIndexOutOfBoundsException注意: 对字符串进行截取(substring,charAt)、转换为字节数组(getBytes),字符数组转换为字符串(valueOf)操作时,先对操作字符串对象的存在性(是否为空)及长度进行检查后,再进行操作。2. 数据插入异常 ,GenericJDBCException: coul...
2019-11-14 20:30:21
928
翻译 ThreadPoolExecutor线程池之submit方法
对于一个任务的执行有时我们不需要它返回结果,但是有我们需要它的返回执行结果。对于线程来讲,如果不需要它返回结果则实现Runnable,而如果需要执行结果的话则可以实现Callable。在线程池同样execute提供一个不需要返回结果的任务执行,而对于需要结果返回的则可调用其submit方法。 回顾ThreadPoolExecutor的继承关系。 在Executor接口中只定义...
2019-11-14 10:18:06
3573
原创 常见工具类判断
1 判断list集合不能为空:CollectionUtils.isEmpty(list)list == null || list.isEmpty()2 金额格式转换并赋值:BigDecimal fenTyuan = new BigDecimal("100");transLogInfo.setTransFee(new BigDecimal(result.getString("me...
2019-11-13 14:51:32
304
原创 元注解5个
@Target 此注解用于表示当前注解的使用范围,@Target({ElementType.TYPE})就代表着@Service这个注解是专门用来注解到类、接口、或者枚举类型上面的,当在方法上面加这个注解时,就会报错 @Retention 此注解用于表示当前注解的生命周期,说人话就是这个注解作用会保留到什么时候,如@Retention(Retenti...
2019-11-11 19:21:30
278
原创 IDEA常用快捷键
Ctrl + F12 清单ctrl + I 引入包或方法Ctrl +Alt +T 提示生成方法Alt + Insert 类似eclipse 的sourceShift + F6 同名的全选修改 Ctrl +e 切换文件Ctrl +shift + 空格 代码补全Ctrl+H 查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆Ctrl+Alt+B查看...
2019-11-08 16:58:38
161
原创 RocketMQ笔记Consumer消费者订阅
1 集群订阅(MessageModel.CLUSTERING):同一个 Consumer ID 所标识的所有 Consumer 平均分摊消费消息。例如某个 Topic 有 9 条消息,一个 Consumer ID 有 3 个 Consumer 实例,那么在集群消费模式下每个实例平均分摊,只消费其中的 3 条消息。代码:private DefaultMQPushConsumer co...
2019-10-28 09:55:14
2053
原创 SpringMVC上的Controller注解
@Controller@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它,这个时候就需要我们把这个控制器类交给Spring 来管理。用于指示Spring类的实例是一个控制器。Contro...
2019-10-25 14:10:23
257
原创 spring 的@Transactional注解
spring 的@Transactional一般类上这么写:@Transactional(readOnly=true) //配置事务 查询使用 只读public Demo{//方法的写法 (增删改要写 ReadOnly=false 为可写)@Transactional (propagation=Propagation.REQUIRED,isolation=Isolation.DE...
2019-10-25 14:09:01
139
原创 基于node.js的Ant Design Pro相关
运行1安装node.sj2在AntDesignPro为基础得项目下,shift +鼠标右键,在此处打开命令窗口(dos窗口),另外一种方式是用idea打开,在窗口Terminal执行以下命令3依次执行以下命令:npm -v 查看版本npm cache clean --force --强制执行清理缓存npm install 安装 :开始本地下载脚手架,此步骤可能会出...
2019-10-25 09:45:39
566
原创 关于POM和相关命令
1 <packaging>pom</packaging>POM是最简单的打包类型。不像一个JAR,SAR,或者EAR,它生成的构件只是它本身。没有代码需要测试或者编译,也没有资源需要处理。打包类型为POM的项目的默认目标生命周期阶段 目标package site:attach-descriptorinstall...
2019-10-24 16:43:45
217
翻译 抽象类和接口区别
一、抽象类在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就可以称之为抽象类。1.抽象方法:使用abstract修饰且没有方法体的方法。特点:① 抽象方法没有方法体,交给子类实现② 抽象方法修饰符不能是private final static③ 抽象方法必须定义在抽象...
2019-10-21 13:52:28
724
转载 Redis 实现同步锁
1、技术方案1.1、redis的基本命令1)SETNX命令(SET if Not eXists)语法:SETNX key value功能:当且仅当 key 不存在,将 key 的值设为 value ,并返回1;若给定的 key 已经存在,则 SETNX 不做任何动作,并返回0。2)expire命令语法:expire KEY seconds功能:设置key的过期时间...
2019-08-12 11:33:36
8832
3
翻译 过滤器和拦截器的区别
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。⑥拦截器可以获取IOC容器...
2019-08-12 10:59:18
115
转载 Session和Cookie之间区别与联系
一. 概念理解你可能有留意到当你浏览网页时,会有一些推送消息,大多数是你最近留意过的同类东西,比如你想买桌子,上淘宝搜了一下,结果连着几天会有各种各样的桌子的链接。这是因为你浏览某个网页的时候,WEB 服务器会先送一些资料放在你的计算机上,类似于你打的文字,选的一些东西什么的,Cookie 会帮你都纪录下来。当下次你再光临同一个网站,WEB服务器会先看看有没有它上次留下的 Cookie...
2019-08-12 10:43:57
180
原创 初步认识Maven(二)
创建Maven的web工程时:提示这种错误:Cannot change version of project facet Dynamic Web Module to 2.5.解决方式 :项目路径下的 .setting文件夹内的org.eclipse.wst.common.project.facet.core.xml文件,修改如下<installed facet="jst.web" ...
2019-08-05 22:02:09
92
原创 初步认识Maven(一):
第一步:Maven 下载地址:http://maven.apache.org/download.cgi首先要确定 jdk 已经安装和配置,把 maven 解压到放到 D 盘配置 maven 环境变量:path系统变量,D:\MyTool\maven\apache-maven-3.3.3\binwin+r,执行cmd,打开dos窗口,执行, mvn -version 正常显示maven...
2019-08-05 11:34:49
117
原创 JMS之ActiveMQ(之二):发布/订阅模式
与上篇点对点消息模式不同的地方在与,1 发布/订阅者模式,使用Topic //destination = session.createQueue("FirstQueue1");// 创建消息队列destination = session.createTopic("FirstTopic2");2 发布/订阅者模式 先订阅,再生产者发布,就好比得先定报纸,才能送报纸;3...
2019-08-04 21:21:51
245
原创 JMS之ActiveMQ(之一):点对点
开发包及源码下载地址:http://activemq.apache.org/activemq-5111-release.html下载 apache-activemq-5.11.1-bin压缩包,解压,运行bin下的.bat文件,选择与操作系统对应的;(闪屏即关闭的应该是环境变量有问题,扔到桌面上启动);ActiveMQ 服务启动地址:http://127.0.0.1:8161/admin/...
2019-08-04 17:52:37
122
转载 浅谈Java中的equals和==
在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1.equals(str2)); 为什么第4行和第5行的...
2019-08-02 15:29:02
104
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人