Java模块
文章平均质量分 77
石工记
毕业于美国佩丁大学,湖南大学,硕士,前某帮技术总监,擅长架构、产品、大数据,专注供应链、技术、金融
展开
-
微服务时代java异常捕捉
我们常常会想要在捕获一个异常后抛出另一个异常,并且希望把原始异常的信息保存下来,这被称为异常链。公司的框架提供统一异常处理就用到异常链,我们自定义封装异常,不要丢弃原始异常的信息,否则排查问题就头疼啦反例:try {//e 保存异常信息throw new MyException("文件在哪里呢");//e 保存异常信息throw new MyException("文件找不到");try {原创 2023-08-22 21:45:09 · 847 阅读 · 0 评论 -
组件打包常用工具-proguard-maven-plugin等
1.proguard-maven-plugin2.maven-shade-plugin3.maven-Assembly-plugin4.onejar-maven-plugin5.mvaen-jar-plugin和 maven-dependency-plugin。原创 2023-08-19 21:11:14 · 1583 阅读 · 0 评论 -
RabbitMQ的安装-centos环境
RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。RabbitMQ与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。2.安装。原创 2023-08-11 21:10:30 · 823 阅读 · 0 评论 -
Docker部署Springboot应用【mysql部署+jar部署+Nginx部署】
【注意】:石工的项目需要用到mysql然后spring boot读的就直接是远程的地址了,如果不是请修改spring boot里面mysql的读取位置。石工拿的就是之前放置在我们服务器上的应用进行部署,主要就是mysql和jar还有Vue的部署。我们去查看当前主机有没有成功跑起来,在电脑上输入你虚拟机的的ip地址,和我们之前定义的接口。可以可以,然后我们后端就已经完成部署了,现在我们来部署我们的前端吧。然后我们再将我们数据库往我们刚刚应用的数据库里面复制。目前已经有的是jar、已经打包好的vue。原创 2023-07-31 16:12:01 · 1080 阅读 · 0 评论 -
linux(centos) docker 安装 nginx
利用数据卷映射,可以修改nginx的默认配置和加载网站。同时,容器创建后,就无法修改。一旦关闭容器,容器中的临时数据就会消失。利用数据卷映射,也很好解决了数据持久化的问题。我们将网站设置在宿主机上,并通过数据卷映射的方式到nginx展示。不希望nginx监听默认的80端口,可以使用-p选项,修改映射端口。如果想要修改nginx的配置或内容,可以使用-v选项进行数据卷映射。如果nginx容器已经启动,可以使用docker update更新。使用docker run命令,启动nginx容器。原创 2023-07-30 20:46:45 · 2320 阅读 · 0 评论 -
linux nginx 布置方案
【代码】linux nginx 布置方案。原创 2023-07-30 18:52:44 · 446 阅读 · 0 评论 -
使用mybatis-plus的五个步骤
1.当mapper文件和xml文件在同一个目录下(非resources目录下),需要配置pom.xml文件,使xml文件能够被打进jar包,不需要额外配置yml文件;2.当mapper文件在/java目录下,xml文件在resources目录下,需要配置yml文件使得xml文件能够被找到。 (2)mapper和mapper.xml在同一个目录下,但文件名不相同。 (1)mapper和mapper.xml在同一个目录下,且文件名相同。1.1当xml文件不在resources目录下。原创 2023-06-13 20:09:47 · 1340 阅读 · 0 评论 -
maven打完jar包之后将jar包放到指定位置总结之五种方法
maven打完jar包之后将jar包放到指定位置总结之五种方法:1.通过maven-jar-plugin指定outputDirectory输出路径;2通过maven-resources-plugin指定outputDirectory输出路径;3.通过maven-antrun-plugin复制jar包;4.通过maven-antrun-plugin嵌入build.xml文件;5.使用distributionManagement设置存放路径原创 2023-06-09 12:04:58 · 6940 阅读 · 0 评论 -
微服务之间调用几种方法
微服务之间调用几种方法原创 2023-06-06 16:30:59 · 2619 阅读 · 0 评论 -
HTTP请求报文解剖
HTTP请求行、请求头、请求体详解原创 2023-06-06 19:32:52 · 471 阅读 · 0 评论 -
HTTP连接要考虑超时,重试和并发之原因
TCP连接是全双工的,因此每个方向都必须单独进行关闭:当一方完成它的数据发送任务后就发送一个FIN来终止这个方向的连接,对端收到后回复一个ACK报文,这样双向就需要四次交互。2、 A和B再次建立连接,所用IP和端口与1中相同,二者数据传输过程中,B正好请求A发送seq为100的数据,这时1中滞留的报文到达B,TCP认为该报文合法,就接收了这个报文。7、Client收到Server的ACK,由于Client认为自己并未请求连接,所以会忽略该ACK(不同于SYN,ACK报文不需要回复)原创 2023-04-22 18:07:05 · 1545 阅读 · 0 评论 -
微服务之JVM调优
1. maxMemory()这个方法返回的是java虚拟机(这个进程)能构从操作系统那里挖到的最大的内存,以字节为单位,如果在运行java程序的时候,没有添加-Xmx参数,那么就是64兆,也就是说maxMemory()返回的大约是64*1024*1024字节,这是java虚拟机默认情况下能从操作系统那里挖到的最大的内存。系统的可用物理内存限制。随着-Xmx的加大,空闲的内存数就更少,那么可以创建的线程也就更少,同时在JDK1.7和1.8版本不同下,可创建的线程数也会根据每个线程的内存大小不同而不同。原创 2023-01-11 11:29:14 · 997 阅读 · 0 评论 -
kafaka ElasticSearch 集群,解决问题,工作流程及配置
在192.168.50.180/181/182/187搭建elasticsearch,注意es的启动必须是非root用户启动,需要先创建用户esuser:useradd esuser -s /bin/bash -d /home/esuser -m。注意:其他几台服务器,作为子节点,需要修改cluster.name、node.name、network.host为自身的配置,修改node.master:false。agent负责将收集到的数据写入kafka,logstash取出数据并处理。原创 2022-12-14 08:34:19 · 799 阅读 · 0 评论 -
nacos 2.X.X在centos7 环境配置及安装
一、环境准备1.jdk 安装及配置2.mysql安装及配置三.centos 7环境下安装及配置1.下载nacos1.1安装包下载地址链接:https://pan.baidu.com/s/1gGAjPmnEIhqQGeTOde9x5Q提取码:4c3h1.2如何失效 到mysql社区下载自己对应的版本mysql社区2.安装2.1 解压nacos下载包:tar -zxvf nacos-xxx.xx.x.tar.gz(对应的下载包)3.配置nacoss配置文件application.properties:原创 2022-12-07 20:09:32 · 1563 阅读 · 0 评论 -
史上最全maven setting解读(本地仓库,远程仓库,鉴权等)
史上最全maven setting解读(本地仓库,远程仓库,鉴权等)原创 2022-11-19 14:39:56 · 4471 阅读 · 0 评论 -
nacos微服务云开发,远程联调部署,内网穿透,frp部署
一、背景家办公,公司项目是的,一个人负责一个小服务,而且每个人都不在同一个局域网内,公司有一个云服务器(部署nacos),大家都把自己负责的服务都注册到nacos上(作为服务注册和服务发现已经配置中心)如何实现nacos微服务云开发,远程联调部部署解决方法:我们把注册网关的本地服务做一个内网穿透二、frp内网穿透。原创 2022-11-11 15:09:15 · 1846 阅读 · 0 评论 -
数据库设计时要明白位、字节、字符等关系
一般 gbk 或 ASCII 编码下,一个汉字 字符 占用 2 个 字节;一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;符号等同于汉字,占用2个或3个字节需要根据不同编码集判断。a、A、中、+、*、の......均表示一个字节(short型:2个字节(二进制16位)这里要特殊说明一下“二进制”表示的数字。一字节存的最小数为 11111111(long型:8个字节(二进制64位)最小数为00000000(十进制。最大数为11111111(十进制。8个位构成一个字节;byte型:1个字节(原创 2023-06-26 13:56:38 · 498 阅读 · 0 评论 -
通过http数字代码判定错误类型(400,404,300,500等)
1.该类型状态码表示接收到请求并且继续处理100:客户端必须继续发出请求。101:客户端要求服务器根据请求转换HTTP协议版本。2.该类型状态码表示动作被成功接收、理解和接受。200,表明该请求被成功地完成,所请求的资源发送到客户端。201,提示知道新文件的URL。202,接受并处理,但处理未完成。203,返回信息不确定或不完整。204,收到请求,但返回信息为空.205,服务器完成了请求,用户必须复位当前已经浏览过的文件。206,服务器已经完成了部分用户的GET请求。...原创 2022-06-22 23:56:52 · 1406 阅读 · 0 评论 -
解决访问出现404和500的问题(Tomcat与Servlet、JSP、JDK的版本适配问题)
一、问题描述在Maven创建Java Web项目的过程中,常常出现了配置Servlet后访问出现404和500的问题,如下二、出现原因在网上查了许多资料之后,我发现这是因为Tomcat版本的适配问题。 在Tomcat的官网中,我们可以看到不同版本的Tomcat适配的JDK、Servlet、Jsp以及EL的版本,如下: 由于我使用的是Tomcat10.0.12的版本,而我使用Maven导入的依赖如下三、解决方法既然是由于Tomcat版本与Servlet版本不匹配造成,那么自然就有对应的两种解决方..原创 2022-06-20 18:33:53 · 4406 阅读 · 2 评论 -
解决java.lang.NullPointerException和java.lang.ClassNotFoundException报错和出现原因
一、java.lang.NullPointerException出现的几种原因:二、下图为异常分布图:原创 2022-06-16 11:34:20 · 1085 阅读 · 0 评论 -
springboot依赖springframework版本关系&springframework各版本框架源码及与jdk版本的对应关系
一、springframework各版本框架源码(速度快)Tags · spring-projects/spring-framework · GitHub2.springframework各版本与jdk对应关系,及期发布时期原创 2022-06-15 17:21:10 · 3965 阅读 · 1 评论 -
如何让spring5.x支持velocity
新版spring5.0已经移除了对velocity的支持,下面就说说如何让spring5.x支持velocity。spring从4.3开始不再支持velocity,官方说法是:Velocity 1.7 dates back to 2010. After more than five years of nomaintenance in the original project, it's about time to deprecate Velocity support on Spring's side.来自原创 2022-06-15 13:45:00 · 516 阅读 · 0 评论 -
实体entity、JavaBean、Model、POJO、domain的区别
Java Bean、POJO、 Entity、 VO , 其实都是java 对象,只不过用于不同场合罢了。一、按照 SpringMVC分层结构:JavaBean: 表示层 (PresentationLayer)Service: 业务层 (Service layer)Dao: 数据访问层 (data access layer)。Entity接近原始数据,Model接近业务对象~Entity:是专用于EF的对数据库表的操作,Model:是为页面提供数据和数据校验的,所以两者可以并存...原创 2022-05-29 00:19:34 · 2460 阅读 · 1 评论 -
spring aop 表达式详解
1. 简介面向对象编程,也称为OOP(即Object Oriented Programming)最大的优点在于能够将业务模块进行封装,从而达到功能复用的目的。通过面向对象编程,不同的模板可以相互组装,从而实现更为复杂的业务模块,其结构形式可用下图表示:面向对象编程解决了业务模块的封装复用的问题,但是对于某些模块,其本身并不独属于摸个业务模块,而是根据不同的情况,贯穿于某几个或全部的模块之间的。例如登录验证,其只开放几个可以不用登录的接口给用户使用(一般登录使用拦截器...原创 2022-05-27 12:40:19 · 1867 阅读 · 0 评论 -
jdbcTemplate.queryForXXX等方法的总结
使用jdbcTemplate查询数据的时候可以使用queryForXXX等方法。下面我们就一一解析一下:1、jdbcTemplate.queryForInt()和jdbcTemplate.queryForLong()--使用queryForInt返回user表中的记录数量,queryForInt搭配这样的sql可以在分页的时候计算总记录数jdbcTemplate.queryForInt("select count(*) from user");2、jdbcTemplate.queryForObjec原创 2022-05-21 10:52:29 · 631 阅读 · 0 评论 -
Java调用第三方http接口的方式
1. 概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。在Java项目中调用第三方接口的方式有:①通过JDK网络类Java.net.HttpURLConnection;②通过common封装好的HttpClient;③通过Apache封装好的CloseableHttpClient;④通过SpringBoot-RestTemplate;2.J...原创 2022-05-07 15:23:15 · 1987 阅读 · 0 评论 -
常说的java加锁有哪三种方法
1、synchronized方式(重量级锁)加锁方式:synchronized(object)传入对象,不同对象代表不同锁,可以在线程外部新建对象。public class SellCinemaTicketThread implements Runnable { static int num = 100; Object object = new Object(); @Override public void run() { while (tru..原创 2022-05-03 15:12:28 · 22712 阅读 · 0 评论 -
spring springmvc 注解的总结和归纳
一、spring注解:(1)@Controller控制器(2)@Autowired按照类型匹配,可以完成对类成员变量,方法及构造函数进行标注,完成自动装配的工作@Autowired(required=false)在找不到匹配Bean时也不报错(3)@Qualifier注释指定注入bean的名称,防止冲突,可以对成员变量、方法入参、构造函数入参进行标注(4)@Component通过使用@Component注释类就可以完成bean的定义,使用@Component("...原创 2022-04-19 18:01:44 · 186 阅读 · 0 评论 -
kubectl常见命令及错误排除
一、常见命令kubectl 详细命令用法可以参考官网:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commandskubectl 常用的命令总结只显示默认命名空间的podskubectl get pods显示所有空间的podkubectl get pods --all-namespaces显示指定空间的podkubectl get pods -o wide --namespace apm其中–na原创 2022-03-14 10:00:26 · 1894 阅读 · 0 评论 -
windows 10 安装jira进行开发管理
windows 10 安装jira进行开发管理原创 2022-03-13 17:27:57 · 2851 阅读 · 0 评论 -
常见加密方式总结
一 . MD51.简单说明MD5:全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”效果:对输入信息生成唯一的128位散列值(32个字符)2.MD5的特点(1)对不同的数据加密,得到的结果是定长的,MD5对不同的数据进行加密,得到的结果都是32个字符.(2)根据输出值,不能得到原始的明文,即其过程不可逆(3)算法具有较好的安全性,而且免费(4)广泛使用主要运用在数字签名、文件完整性验证以及口令加密等方面MD5用途 - 口令加密 -原创 2021-12-16 17:56:47 · 3116 阅读 · 0 评论 -
Spring Boot框架开发Web项目 Spring Boot项目的打包和部署
现在我们已经有了一个简单的项目了,我们应该怎么将项目打包,并部署到服务器上呢?工具IntelliJ IDEA 16JDK 1.8Maven 3.5Tomcat 1.8将项目打成war包并部署到Tomcat中1、首先打开我们的pom.xml文件,修改其中的配置<groupId>com.example</groupId><artifactId>demo</artifactId><version>SNAPSHOT<原创 2021-10-14 22:22:43 · 624 阅读 · 0 评论 -
2021-10-13
使用IntelliJ IDEA和Maven构建Java web项目并打包部署一、背景IntelliJ IDEA比Myeclipse好用多了 ,功能也非常的强大,google公司Android Studio就是基于IntelliJ IDEA开发的,开发效率非常高,各种智能提示等等,具体的大家可以去了解一下,这里我就不再赘述了,本文着重讲一下怎么使用IntelliJ IDEA和Maven创建一个Java web项目。二、下载安装IntelliJ IDEA下载地址htt...原创 2021-10-13 18:08:51 · 95 阅读 · 0 评论 -
idea导入eclipse聚合maven工程
天突然从用了多年的eclipse换成idea,遇到了各种坑,连聚合工程导入的不一样选择导入的聚合项目选中父工程选择maven递归方式搜索项目(一定要选择,不然idea识别不了它是一个聚合项目)选择jdk8完成...原创 2020-06-05 10:19:12 · 614 阅读 · 1 评论 -
svn git gitlab github 区别
一、版本成长git诞生:git 由LinusLinus花了两周时间自己用C写了一个分布式版本控制系统,在2008 正式上线。(这里和Linux有一段黑历史)。github: github代码托管,2018年6月4日 ,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。gitlab: 在github被收购同时,紧接着又推出了gitlab,功能和gitlab 几乎一样,而且更全。而且gitlab 可以搭建自己的服务器。二、svn: 必须要有自己的服务...原创 2020-05-26 15:59:27 · 1451 阅读 · 0 评论 -
微服务、SOA、ESB之间有着联系也有着区别
很多时候会听到微服务、SOA、ESB之间有着联系也有着区别,有时候了解了一下,过段时间有混肴模糊了今天看了一篇文章写的很好,特地记录一下。一、SOA架构解析SOA 全称是: Service Oriented Architecture,中文释义为 “面向服务的架构”它是一种设计理念,其中包含多个服务, 服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务...原创 2019-10-22 10:02:39 · 320 阅读 · 0 评论 -
Windows下JSP开发环境的配置
作者:unknown 更新时间: 2005-03-17 摘 要 要学习JSP开发,必须先搭建一个符合JSP规范的开发环境。本文以实用为原则,介绍了以Tomcat服务器为核心的3种配置JSP环境的方法。 关键字 JSP引擎,Web服务器,配置 Sun推出的JSP(Java Server Pages)是一种执行于服务器端的动态网页开发技术,它基于Java技术。执行JSP时需要在We原创 2005-12-13 13:50:00 · 1105 阅读 · 0 评论 -
心目中的Java2十大经典中文图书
第一名:Java编程思想第二版(Thinking in java second)-包含范围:全部。 没说的--绝对的大师作品--当之无愧的第一--第一版时就享誉整个java界(当时网上好象也有人译了)--国内版是京京工作室翻译的-基本上毁了此书--错误术语太多-推荐高手看E文版,新手就不要先看此书了。第二版更精采--台湾的侯捷译了此书-可以到www.csdn.net看看前几章的中文版(不过是台湾术原创 2005-12-23 08:52:00 · 1099 阅读 · 0 评论 -
程序员四大忌 你该如何避免呢
一忌:轻易言败,没有自信 没有永不放弃精神的程序员,只是一个有程序员名号的假程序员。一个真正的程序员,知道在程序设计的过程中,可能会遇到不计其数的困难和问题,可能有极多的挫折和失败,而成功只有一次。 就为解决一个问题,我们可能连续十几甚至几十小时的坐在计算机前不停的工作。一个问题解决了,可能又有其它的问题出现。而你要是不能坚持下来,可能从前的一切努力都流失了。轻易言败的人请不要做程序员原创 2006-01-14 07:56:00 · 976 阅读 · 0 评论 -
敏捷开发 vs 传统模式
说起敏捷开发,并不是因为敏捷而敏捷。这几年的敏捷开发已经被很多敏捷咨询服务商神话了,这个东西并不是神器,实施了就可以解决所有软件公司的问题,而是要结合自己公司的特点和问题摸索出适合自己的一套模式。大家都知道,创业公司刚开始需要研发出一款产品并且能够使公司赚钱的产品,不过大部分创业公司没有那么容易一下就能做出来,很多公司还没有成功的产品资金链就断掉了,公司也死掉了。我们公司是这样一个状况,有转载 2015-05-28 22:40:58 · 19902 阅读 · 0 评论