
java技术
文章平均质量分 50
Honins
架构师产品经理之路
展开
-
Springboot项目 基于gitlab runner 实现CI/CD教程
Java项目 CI/CD的实现教程CI 是什么?CI 和 CD 有什么区别?缩略词 CI / CD 具有几个不同的含义。CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。持续交付通常是原创 2021-07-09 17:04:16 · 1315 阅读 · 0 评论 -
jvm 性能调优工具之 jstat
jstat介绍jstat 用法# jstat -helpUsage: jstat -help|-options jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]Definitions: <option> An option reported by the -options option <vmid>原创 2021-03-29 11:28:48 · 236 阅读 · 0 评论 -
看spring源码时,在mysql-connector包发现了一行有点意思的代码
在包 com.mysql.jdbc下,ConnectionImpl类中execSQL 方法中this.lastQueryFinishedTime = 0; // we're busy!注释 we’re busy这里探究一下,为啥开发人员要加这么一句话。原创 2021-03-23 17:38:09 · 275 阅读 · 0 评论 -
Java异常体系
总体结构通过jdk文档 https://docs.oracle.com/javase/8/docs/api/,我可了解jdk这样设计的意图The Throwable class is the superclass of all errors and exceptions in the Java language. Only objects that are instances of this class (or one of its subclasses) are thrown by the Jav转载 2021-03-23 14:57:59 · 176 阅读 · 0 评论 -
flowable-6.6.0 Springboot方式实现的 Getting start示例demo
flowable-6.6.0 Springboot方式实现的 Getting start示例demodemo已放至github,欢迎star官方文档地址首先发个flowable和activiti的选型对比核心是下面这个类,其他的文档讲的很清楚package com.example.flow.service;import org.flowable.engine.*;import org.flowable.engine.repository.Deployment;import org.fl原创 2021-01-15 11:04:09 · 591 阅读 · 0 评论 -
消息中间件RabbitMQ 的入门与选型
消息中间件MQ文中代码已放至 github介绍和选型消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。关于各个组件的详细介绍和比较可看以下参考资料:java消息队列MQMQ框架的比较多维度对比5款主流分布式MQ消息队列,妈妈再也不担心我的技术选型了原创 2020-11-24 13:26:28 · 564 阅读 · 0 评论 -
java 获得文件MD5值的流程
最近在研究怎么实现上传文件的去重目前思路是:先计算文件md5值并保存,上传文件时判断该文件的md5是否已存在,若不存在则跳过上传过程随后研究了下java获得文件MD5值的流程,如图原创 2020-10-16 16:30:52 · 669 阅读 · 0 评论 -
Java如何支持函数式编程?
背景在很长的一段时间里,Java一直是面向对象的语言,一切皆对象,如果想要调用一个函数,函数必须属于一个类或对象,然后在使用类或对象进行调用。但是在其它的编程语言中,如JS、C++,我们可以直接写一个函数,然后在需要的时候进行调用,既可以说是面向对象编程,也可以说是函数式编程。从功能上来看,面向对象编程没什么不好的地方,但是从开发的角度来看,面向对象编程会多写很多可能是重复的代码行。比如创建一个Runnable的匿名类的时候:Runnable runnable = new Runnable() {转载 2020-09-25 08:43:19 · 278 阅读 · 0 评论 -
列一下关于博客和学习的计划
关于博客几个月没有更新博客了,有一些读写提的问题也迟迟没有回复,深感抱歉。后续会积极回复问题、继续在优快云上更新文章、也会搭建自己的博客网站。博客内容大概分为记录BUG、学习内容、实用操作,内容质量上也会有所提升,链接github等关于提升加强基础学习,今年内看完《JAVA编程思想》和《深入分析JAVA WEB技术内幕》,刷一下leetcode学习一个框架的源码,将学习过程以博客方式记录下来搭建完成一套完整的微服务架构...原创 2020-08-14 17:15:21 · 180 阅读 · 0 评论 -
java中类路径classpath和包详解
类路径(classpath)java编译器编译.java文件和java虚拟机执行.class文件时的路径和写法不一样。在没有设置任何classpath环境变量的情况下,javac可以编译全路径的.java文件。例如:javac d:\myjava\HelloWorld.java编译后,在.java同路径目录下生成class文件。默认java虚拟机要从classpath...转载 2019-05-22 17:55:46 · 6068 阅读 · 0 评论 -
java使用HttpClient 发送带文件的formdate类型表单 post请求
先贴上代码1.创建一个表单 // 创建一个表单 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); File photoFile = R...原创 2019-05-07 16:58:22 · 4629 阅读 · 0 评论 -
SpringBoot中普通类无法通过@Autowired自动注入Service、dao等bean解决方法
解决方式:手写一个工具类SpringUtil来调用beanpackage com.mikey.design.utils;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.sp...转载 2019-04-18 08:50:27 · 7753 阅读 · 4 评论 -
java使用HttpClient进行post和get请求
今天在使用一个短信接口时总是提示我请求体为空, 我发送请求体的写法是: URL url = new URL(requestUrl); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(ssf...原创 2019-04-16 17:10:49 · 412 阅读 · 0 评论 -
全方位 解决使用mysql时存中文乱码的问题
我现在使用的是springboot+mysql的组合安装完mysql5.6后,往里面存中文都变成了 ??经过各个方面的排查,终于解决了问题,特此记录我们的目的就是要统一成utf-81.项目编码检查idea里项目的编码设置成如图2.查看数据库的编码设置成如图3.连接jdbc时的编码方式4.如果这些还不行的话,检查mysql的字符集这个...原创 2019-04-09 13:28:59 · 464 阅读 · 0 评论 -
springboot的jar包 使用idea进行远程调试
项目:pom.xml里加上插件<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> &...原创 2019-04-10 14:43:01 · 678 阅读 · 0 评论 -
druid 阿里巴巴出品的数据库连接池工具
这里介绍一个非常好用的java数据库连接池工具:druid,号称是Java语言中最好的数据库连接池首先看一下关于druid的介绍Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。Druid连接池是阿里巴巴内部唯一使用的连接池,在内部数据库相关中间件TDD...原创 2019-03-26 10:35:33 · 1412 阅读 · 0 评论 -
完全实现 Springboot2.x + druid1.1.x配置多数据源并实现自动切换
看到网上有不少实现,但是大多讲的不仔细,或实现的不优雅这里记录一下我的实现方式。实现思路理由springboot配置多个数据源配置默认数据源,编写数据源切换类创建切面实现自动切换UML类图如下是实现多数据源的类图具体实现导入依赖<dependencies> <dependency> <groupId&...原创 2019-07-31 17:37:00 · 5142 阅读 · 1 评论 -
tomcat启动时的异常处理
Tomcat缓存的问题 这段时间有2个问题和tomcat有关的问题一直困扰着我,一个问题是tomcat启动时报错log4j没有配置文件,接着tomcat有找到配置文件了,这时tomcat是重启了一遍,导致项目启动很慢。第二个问题是,我的项目使用了druid,并且使用了 init-method="init" ,所以在启动的时候会尝试先连接数据库,但是每次启动了时会连接一个我已经注释的数据...原创 2019-03-26 10:06:58 · 666 阅读 · 0 评论 -
Fastjson--json/JSONObject/Bean常用转换
首先贴上fastjson的guthub地址:https://github.com/alibaba/fastjson本文先创建几个实体类和几个json字符串,然后做转换示例1.创建实体类Teacher.javapackage com.imooc.sell.json;import java.util.List;public class Teacher { pr...转载 2019-05-29 09:20:13 · 495 阅读 · 0 评论 -
Junit 判断cron语句的正确性和下一次执行时间
Junit 判断cron语句的正确性和下一次执行时间,Spring有提供类CronSequenceGenerator供我们使用 /** * 判断cron语句的正确性 */ @org.junit.Test public void test4(){ SimpleDateFormat sdf = new SimpleDateFormat("yy...转载 2019-06-14 09:05:02 · 790 阅读 · 0 评论 -
vux+ssm 前后台分离的跨域问题(续)
这一篇是延续我之前的跨域问题,上次没有弄的很清楚,这次接着解决上篇:Vue-cli+ssm框架 axios跨域请求的问题!以及遇到的各种坑!昨天将vux上线发现了不能获取用户名信息,奇怪的是在我电脑可以获取,但是在手机上就不行今天发现问题所在了,主要是在2各方面1:我的电脑可以获取,是因为我的本地跑着tomcat服务,因为我的ajax请求路径用的是 “/langyage”开头,即使我使用的是47上...原创 2018-07-12 11:25:01 · 656 阅读 · 0 评论 -
成为技术主管需要做到的三点
转自云狄 阿里高级技术专家的一篇文章阿里妹导读:技术主管,又叫「技术经理」,英文一般是 Tech Leader ,简称 TL。随着工作经验的不断积累,能力的不断提升,每个人都有机会成为 TeamLeader。然而在机会到来前,我们必须提前做好准备,对 TL 的工作职责有一定了解。当然,这也会为当下更好地配合 TL 工作打下基础。阿里巴巴高级技术专家云狄将结合自己多年的经验,从开发规...转载 2019-09-26 15:06:12 · 974 阅读 · 0 评论 -
从求生存到修体系,阿里技术人的成长模式
发现一篇很有价值的文章,值得反复思考,故转载至此。导读:成长即意味着改变,而改变本身是一件很痛苦的事情。改变会有连锁反应,一次改变之后,你的心态和认知可能会和以前大有不同。平凡的人总是相似,不凡的人各有各的不凡,技术人的成长道路依然很长!本文由阿里巴巴前端技术专家悟寻将他在阿里的成长思考进行分享,希望能够给正在业务中深耕细作的你带来一些思考和方向。前言我将我经历过的或者正在经历的状态,分成...转载 2019-08-30 18:55:01 · 249 阅读 · 0 评论 -
JAVA架构学习路线
随着项目的发展,最近一直在怎么提示个人水平和设计项目架构,首先是代码设计中一定要注意的6大原则项目设计原则单一职责原则里氏替换原则依赖倒转原则接口隔离原则迪米特法则开闭原则发现下面讲的内容颇有道理,在这里记录一下,慢慢学习一、阅读源码程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多...转载 2019-08-08 16:36:51 · 430 阅读 · 0 评论 -
CentOS 7安装Redis服务
看到了一篇关于centos7安装redis的文章,写的挺好的,文末原文一、Redis下载在centOS里通过wget下载rediswget http://download.redis.io/releases/redis-4.0.11.tar.gz 具体版本下载地址可以去redis官网查看Redis下载地址:https://redis.io/download二、安装进入/usr/l...转载 2019-08-01 11:25:18 · 259 阅读 · 0 评论 -
Springboot2整合JWT的实现
jwt的作用对于一个技术而言,我们不能为了用它而用它,而且应该从业务出发,我为了解决什么问题才用哪种技术。首先,jwt全称是Json Web Token,在讨论基于Token的身份认证是如何工作的以及它的好处之前,我们先来看一下以前我们是怎么做的:HTTP协议是无状态的,也就是说,如果我们已经认证了一个用户,那么他下一次请求的时候,服务器不知道我是谁,我们必须再次认证传统的做法是将已经...原创 2019-08-01 10:04:57 · 1211 阅读 · 0 评论 -
BIO,NIO,AIO整理(全称,介绍,区别)
先来个例子理解一下概念,以银行取款为例:同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API)。阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一...转载 2019-07-17 14:29:56 · 792 阅读 · 0 评论 -
Jetty 的工作原理以及与 Tomcat 的比较
JettyJetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler。基于 HTTP 协议工作如果前端没有其它 web 服务器,那么 Jetty 应该是基于...转载 2019-07-18 10:01:18 · 346 阅读 · 0 评论 -
mybatis sqlserver插入返回新增记录的主键
xml文件的写法: 注意要加上: useGeneratedKeys="true" keyProperty="id"这个语句返回的int值并不是主键值,而是改变记录的行数实际上我们需要的主键值是自动加到传入的元素里比如,我这里新增的主键值已经放入到 u 里了,u.getId() 就是新增的主键了...原创 2019-02-01 12:46:04 · 3411 阅读 · 0 评论 -
spring统一拦截异常并统一处理
在开发中,经常使用到session,当session失效时我就要弹出一次登录超时的提示经过查找一段时间后,发现了解决办法:解决思路是:主要抛出2种日志,1是应对我们自己定义的异常,比如登录超时,我们在需要判断的地方 加一个throw我们自己定义的exption就行了,然后统一抛出报错信息给前台2.应对所有的异常,因为都是在springmvc使用的,所以可以加一个统一处理,将这一...原创 2019-01-25 15:01:37 · 2786 阅读 · 0 评论 -
spring在非controller里使用service层的注解
在SpringMVC框架中,经常要使用@Autowired注解注入Service接口,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果在自己封装的Utils工具类中或者非controller普通类中使用@Autowired注解注入Service或者Mapper接口,直接注入是不可能的,因为Uti...原创 2018-12-29 14:24:52 · 2369 阅读 · 0 评论 -
ssm配置完成shiro,实现登录验证的功能
花了一天时间,算是完成了shiro登录验证的这一基本功能。https://www.w3cschool.cn/shiro/andc1if0.html 这个教程可以多看看,核心的基础功能很重要。实现shiro第一步,引入所需要的依赖在pom.xml文件中加入<properties> <!-- log4j日志文件管理包版本 --> ...原创 2018-09-12 16:06:58 · 2290 阅读 · 0 评论 -
ssm访问接口报错 Cause: java.lang.NoSuchMethodException
今天测试一个接口,发现报错 Cause: java.lang.NoSuchMethodException 这是从ssm的接口实现类报错的,错误说了是没有这个类,但是排查了一遍,有这个类啊,路径名也没错。后来突然发现,我在这个类里重写了构造方法,没有无参的初始构造器,所以当mybatis实例化时会失败,所以报错没有类解决方法:在这个类上加上一个无参的构造器...原创 2018-08-28 11:26:46 · 595 阅读 · 0 评论 -
用ssm进行微信开发,实现微信登录验证功能
我们微信公众号使用的是我的测试号,地址https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index1.微信测试号后台配置注意,这个配置要成功,否则是会显示配置失败的。后台怎么写,看下面2.后台代码2.1验证token的代码控制器里:@RequestMap...原创 2018-08-08 17:22:05 · 4585 阅读 · 4 评论 -
多文件上传,并将完整链接存至数据库
package com.base.util;import java.io.FileOutputStream;import java.io.OutputStream;import java.text.SimpleDateFormat;import java.util.Date;import java.util.UUID;import javax.servlet.http....原创 2018-08-10 14:07:18 · 1348 阅读 · 0 评论 -
CentOS7 下安装 Java 8 、Tomcat8、nginx和mysql5.7(安装方法和问题解决)
安装jdk、tomcat、mysql是常用操作,但是做的时候经常忘记,特此记录。一、安装 Java8准备查看是否已经安装了javajava -version如果出现如图,说明没有安装如果以前已经安装就卸载#查看内置的JDKrpm -qa | grep jdk#卸载内置的JDKyum remove java-1.6.0-openjdkyum re...原创 2018-07-28 18:34:49 · 1595 阅读 · 0 评论 -
vue/vux+ssm 嵌套JSON数组的前后台处理方式
嵌套JSON数组的前后台处理方式,今天终于完成了这样的效果:前台页面的写法:<template> <div> <Header></Header> <router-view></router-view> <h3 style="margin:20px 0 20px 20px">我的市场原创 2018-07-13 16:08:37 · 981 阅读 · 0 评论 -
java获取用户登录的ip地址(考虑多种请求头的情况)
这段代码网上找的,传一个HttpServletRequest request就行,直接用public class IpUtil { /** * 获取登录用户IP地址 * * @param request * @return */ public static String getIpAddr(HttpServletRequest re...原创 2018-07-04 13:57:47 · 1812 阅读 · 0 评论 -
maven的pom.xml文件完整配置(包括ssm+junit+sqlserver+log4j+json+redis+maven插件)
新建maven项目时需要写pon.xml,自己经常记不住找起来也麻烦,所以在这里专门记录一下文件中包括了:spring+ssm整合包+junit+sqlserver+log4j+json+redis+maven插件pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.o...原创 2018-06-28 15:02:10 · 1043 阅读 · 0 评论 -
springmvc 使用map和requestparam注解接受参数时 后台和fillder的写法
前段时间在学前端,后台写起来有点生疏里,特此记录一下springmvc 使用map和requestparam注解接受参数时 后台和fillder的写法Springmvc写法: @RequestMapping(value = "login",method = RequestMethod.POST) @ResponseBody public JsonResult login ( ...原创 2018-06-11 14:37:11 · 5467 阅读 · 0 评论