java
文章平均质量分 59
beeworkshop
长风破浪会有时,直挂云帆济沧海
展开
-
Git如何撤销提交(命令行+IDEA)
文章目录一、基于命令行1. 工作区的代码想撤销2. add到暂存区的代码想撤销3. 提交到本地仓库的代码想撤销4. 远程仓库的代码想要撤销二、基于 IDEA1. 未提交就撤销2. commit 了想撤销Undo CommitRevert Commit3. push 了想撤销一、基于命令行1. 工作区的代码想撤销可能有一天我正在写代码,写了很久发现写错了,想恢复到一开始的状态,一个笨办法就是把刚刚写的代码一行一行的删除,不过这种方式成本太高,我们可以通过git checkout – <file&转载 2022-04-01 17:10:00 · 37300 阅读 · 1 评论 -
java与网络(IPv4组播)
1. 接收组播包import java.net.DatagramPacket;import java.net.InetAddress;import java.net.MulticastSocket;public class MulticastReceiver { public static void main(String[] args) { InetAddress group = null; int port = 0; try { group = InetAddress.原创 2022-01-06 10:39:13 · 683 阅读 · 0 评论 -
java将byte类型转换为int类型
Java没有无符号字节这种基本数据类型。当值大于127的字节会当作负整数。那么如何将Java的字节转换为int类型?int unsignedByte = signedByte < 0 ? signedByte + 256 : signedByte;原创 2021-12-31 18:30:13 · 617 阅读 · 0 评论 -
SpringBoot 解决跨域,3种解决方案!
文章目录一、问题背景:二、CORS简介:三、详解响应头:Access-Control-Allow-Origin 该字段必填。Access-Control-Allow-Methods 该字段必填。Access-Control-Expose-Headers 该字段可选。Access-Control-Allow-Credentials 该字段可选。Access-Control-Max-Age 该字段可选。四、解决办法:第一种办法:第二种办法:第三种办法:五、文章出处一、问题背景:Same Origin Po转载 2021-08-06 11:22:27 · 798 阅读 · 0 评论 -
Spring框架中Bean的生命周期
文章目录首先简单说一下(以下为一个回答的参考模板)结合代码理解一下1、Bean的定义2、Bean的初始化3、Bean的调用4、Bean的销毁首先简单说一下(以下为一个回答的参考模板)1、实例化一个Bean--也就是我们常说的new;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已转载 2021-07-05 21:26:38 · 202 阅读 · 0 评论 -
SpringBoot启动扩展点及控制bean加载顺序
1. SpringBoot启动扩展点参考这里2. 控制springBoot中bean的加载顺序参考这里原创 2020-11-16 10:18:20 · 475 阅读 · 0 评论 -
Maven及Springboot配置JDK版本,编码,源码打包等
<properties> <!-- 声明一个 java.version 的变量,后面直接引用就可以,改起来方便 --> <java.version>1.8</java.version> <!-- 指定项目编码 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </pr.原创 2020-09-26 11:34:59 · 4714 阅读 · 0 评论 -
springboot静态资源映射规则
一、所有/webjars/**的请求,都会去classpath:/META-INF/resources/webjars/下的目录去找资源。二、访问/**,即访问任何资源,如果没有controller处理该请求,就默认到以下静态资源文件夹中寻找资源"classpath:/META-INF/resources/""classpath:/resources/""classpath:/static/""classpath:/public/""/"三、欢迎页当我们直接访问localhost:原创 2020-09-21 21:53:05 · 281 阅读 · 0 评论 -
SpringMVC中处理编码问题
一、Get 请求含有中文乱码解决方案修改conf/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>tomcat9默认编码utf-8,tomcat9以下默认编码ISO-8859-1。二、Post 请求含有中文乱码解决方案WEB-I原创 2020-09-17 13:37:51 · 413 阅读 · 0 评论 -
Springboot+Redis如何实现发布订阅模式
文章目录一:redis中发布订阅功能二:实战使用reids中的发布订阅模式解决部署在阿里服务与本地后台服务的接口调用不通问题(跨多服务器)1:redis使用到的maven依赖2:application.yml配置3:publisher发布者发布消息4:第一种实现方法5:第二种实现方法:定义订阅者接收消息器接口6:定义不同主题枚举类型,后期增加一个管道,增加一个枚举信息即可7:实现多个订阅者,后续增加一个订阅者,只需要多加上一个订阅者类,从而不用改动redis消息 监听容器配置7.1:设备健康扫描订阅者7.2转载 2020-09-05 17:24:49 · 1971 阅读 · 1 评论 -
springboot 添加JWT接口认证
文章目录1. pom.xml文件添加引用2. 完整pom文件3. jwt密钥配置 application.properties4. JWTToken类5. token验证拦截器(filter)6. JWT验证忽略注解7. 自定义异常类型8. 统一响应结果集9.登录接口10. 验证登录截图此认证方式生成的token基于jdk8.0, jdk其它版本有些方法不支持。1. pom.xml文件添加引用<dependency> <groupId>io.jsonwebtoken<转载 2020-09-05 17:16:34 · 553 阅读 · 0 评论 -
Spring Boot 中加载XML配置
文章目录一、开篇二、实践1.首先我们新建一个SpringBoot Project ,工程名为 xml2.添加web依赖,点击Finish完成构建3.我们新建一个类 SayHello 不做任何配置4.然后在项目的resources目录下,新建一个bean.xml,配置 Say Hello 的实体Bean5.在工程中创建WebMvcConfig,并声明为一个配置类,通过配置类加载 xml 配置文件6.单元测试三、解读四、总结一、开篇在SpringBoot中我们通常都是基于注解来开发的,实话说其实这个功能比转载 2020-09-04 15:39:49 · 1561 阅读 · 0 评论 -
SpringBoot 实现前后端分离的跨域访问(CORS)
文章目录一、基本介绍1. CORS工作原理2. Request Headers(请求头)3. Response headers(响应头 )二、CORS实现跨域访问1. 返回新的CorsFilter(全局跨域)2. 重写WebMvcConfigurer(全局跨域)3. 使用注解(局部跨域)4. 手工设置响应头(局部跨域 )三、测试跨域访问一、基本介绍简单来说,CORS是一种访问机制,英文全称是Cross-Origin Resource Sharing,即我们常说的跨域资源共享,通过在服务器端设置响应头,转载 2020-09-02 21:46:02 · 299 阅读 · 0 评论 -
SpringCloud Config对配置的加密解密用法
1. Java8自带无限制加密解密算法, 不需要再引入网上说的那俩包2. 加密解密是SpringCloud Config的功能, 所以必须先启动一个SCC项目3. 在SCC项目的配置文件中添加加密解密的钥匙: 密钥----> encrypt.key=xuejian4. 启动SCC项目,通过http://localhost:port/encrypt/status检查加密解密功能是否能用,如果能用,会返回OK,否则会返回一个不能用的提示5. 启动一个使用SpringCloud Config配置的普转载 2020-08-29 22:44:32 · 970 阅读 · 0 评论 -
Springboot中登录后关于cookie和session拦截案例
文章目录一、前言二、利用Cookie进行登录验证一、前言1、简单的登录验证可以通过Session或者Cookie实现。2、每次登录的时候都要进数据库校验下账户名和密码,只是加了cookie 或session验证后;比如登录页面A,登录成功后进入页面B,若此时cookie过期,在页面B中新的请求url到页面c,系统会让它回到初始的登录页面。(类似单点登录sso(single sign on))。3、另外,无论基于Session还是Cookie的登录验证,都需要对HandlerInteceptor进行原创 2020-08-27 23:25:22 · 4230 阅读 · 0 评论 -
springboot+mybatis 配置双数据源
最近工作中有用到双数据源,一个项目(中台)中需要操作两个不同的数据库。当时考虑到了两种方式,1.通过http请求访问(A项目访问d1数据源,B项目访问d2数据源,B通过http访问A的接口)2.配置双数据源(A项目访问d1数据源,B项目配置d1,d2数据源)两种方式各有利弊,http简单,但是效率不如双数据源。双数据源相对复杂一些,但效率比较好,最后决定使用双数据源。步骤如下:1.applicationContext.properties配置文件中配置两个数据库连接信息#db1数据库连接spr转载 2020-08-25 00:34:29 · 543 阅读 · 0 评论 -
升级Eclipse的几个要点
1. 取消无效更新站点2. 不试图连接所有的网站下载更新包原创 2020-08-09 11:42:20 · 184 阅读 · 0 评论 -
使用screw一键生成数据库文档
screw是一款简洁好用的数据库表结构文档生成器(maven插件)。github:https://github.com/pingfangushi/screw一. 配置pom文件配置数据源二. screw 核心配置pom文件配置代码配置方式三. 通过screw maven插件执行四. 文档格式screw 有 HTML、DOC、MD 三种格式的文档:代码中的配置.fileType(EngineFileType.HTML)pom文件中的配置<fileT原创 2020-08-08 23:24:12 · 2447 阅读 · 0 评论 -
使用java监控一个目录下文件的变动
直接上代码:import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;import java.nio.file.FileSystems;import java.nio.原创 2020-08-08 00:13:38 · 340 阅读 · 1 评论 -
分析Linux用户行为的常用命令
finger命令finger是获取用户个人资料的一个便捷命令。它使您可以查看谁已登录或专注于单个用户,以查看上一次登录、他们从何处登录、闲置时间有多久(自运行命令以来有多久)等。在该命令中, 我们查看用户nemo。$ finger nemo Login: nemo Name: Nemo Demo Directory: /home/nemo Shell: /bin/bash On since Fri Jun 19 12:58 (EDT) on pts/1 from 192.168.0.6转载 2020-07-21 12:58:25 · 313 阅读 · 0 评论 -
CentOS7下通过Docker架设Nexus Yum代理服务器
一. CentOS8下通过Docker安装Nexus安装Dockeryum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# yum list docker-ce --showduplicates | sort -ryum install -y d原创 2020-07-21 02:10:02 · 503 阅读 · 0 评论 -
Linux环境下安装、部署JavaWeb环境(JDK 1.8+Tomcat 7.0+MySQL 8.0)
环境说明:rhel-8.0-x86_64jdk-8u121-linux-x64apache-tomcat-7.0.75检查一下防火墙状态systemctl status firewalld一、安装JDK1)先创建一个java目录mkdir /home/java2)解压缩jdk-8u121-linux-x64.tar.gztar -zxvf jdk-8u121-linux-x64.tar.gz我这儿安装的是jdk1.8,一般开发环境下安装jre即可。3)把解压好的jdk移动到.转载 2020-07-17 09:07:16 · 340 阅读 · 0 评论 -
java应用在linux环境中的部署
一. 安装JDK在/etc/profile中配置环境变量export JAVA_HOME=/usr/local/jdkexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH让环境变量生效:永久生效:重启 Linux临时生效:. /etc/profile 或者 source /etc/profile 有效范围是当前会话[终端]验证java -ver原创 2020-07-14 18:11:40 · 2385 阅读 · 0 评论 -
Java 正则表达式——捕获组
捕获组分为:普通捕获组(Expression)命名捕获组(?Expression)普通捕获组从正则表达式左侧开始,每出现一个左括号"("记做一个分组,分组编号从 1 开始。0 代表整个表达式。对于时间字符串:2017-04-25,表达式如下(\\d{4})-((\\d{2})-(\\d{2}))有 4 个左括号,所以有 4 个分组:编号捕获组匹配0(\d{4})-((\d{2})-(\d{2}))2017-04-251(\d{4})2017转载 2020-07-04 10:02:55 · 288 阅读 · 0 评论 -
Spring Boot实战:拦截器与过滤器
一、拦截器与过滤器在讲Spring boot之前,我们先了解一下过滤器和拦截器。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的。在分析两者的区别之前,我们先理解一下AOP的概念,AOP不是一种具体的技术,而是一种编程思想。在面向对象编程的过程中,我们很容易通过继承、多态来解决纵向扩展。 但是对于横向的功能,比如,在所有的service方法中开启事务,或者统一记录日志等功能,面向对象的是无法解决的。所以AOP——面向切面编程其实是面向对象编程思想的一个补充。而我们今天讲的过滤器和拦截器都属转载 2020-06-26 20:32:58 · 160 阅读 · 0 评论 -
SSM框架搭建(配置文件篇)
一. 增加项目依赖修改pom.xml增加SpringMVC Spring Mybatis相关项目依赖<?xml version="1.0"encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac转载 2020-06-15 12:18:46 · 446 阅读 · 0 评论 -
SpringMVC的初体验-5
一. SpringMVC文件上传配置spring-mvc.xml<?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:p="http://www.springframework.org/schema/p"原创 2020-06-10 00:03:40 · 145 阅读 · 0 评论 -
SpringMVC的初体验-4
一. Restful风格的URLURL中不含文件的扩展名SpringMVC对Restful风格的支持控制层@Controller@RequestMapping("/article")public class ArticleController { @RequestMapping("/list") public String list(Model model){ return "article/list"; } @RequestMapping("/details/原创 2020-06-09 23:15:33 · 183 阅读 · 0 评论 -
SpringMVC的初体验-3
一. SpringMVC对Servlet API的支持使用Servlet API主要是想使用HttpServletRequest request和HttpServletResponse response以及HttpSession session。控制层Controller@Controller@RequestMapping("/user")public class UserController { @RequestMapping("/login") //引用的request和re原创 2020-06-09 18:41:49 · 165 阅读 · 0 评论 -
SpringMVC的初体验-2
一. SpringMVC控制器请求应答控制层 controller@RequestMapping请求映射@RequestParam请求参数ModelAndView返回模型和视图@Controller@RequestMapping("/student") //分模块public class StudentController { private static List<Student> studentList=new ArrayList<Student>()原创 2020-06-09 15:40:18 · 146 阅读 · 0 评论 -
SpringMVC的初体验-1
一.原创 2020-06-09 12:21:34 · 166 阅读 · 0 评论 -
Spring的初体验-5
一. Spring的编程式事务管理(非AOP的解决方案)缺点:非业务代码会对目标业务代码造成侵入。Spring配置文件(src/beans.xml)<?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:ao原创 2020-06-08 00:13:53 · 133 阅读 · 0 评论 -
Spring的初体验-4
一. Spring中使用JDBC原创 2020-06-07 23:05:31 · 145 阅读 · 0 评论 -
Spring的初体验-3
一. Spring AOP 面向切面编程(也叫面向方面编程)AOP本质上就是一种代理模式Aspect Oriented Programming(AOP)是 Spring框架中的核心内容之一。本质上是一种代理模式——Spring AOP就是基于动态代理的。有了动态代理,Spring就可以对其管理的对象的业务逻辑处理流程进行干预——Spring可以在处理流程中插一脚,干点什么事。可以干点什么呢?分离业务代码,提高程序的可重用性。AOP的应用场景和要解决的问题AOP的应用场景是相互独立原创 2020-06-07 18:25:28 · 163 阅读 · 0 评论 -
Spring的初体验-2
一. Spring 自动装配(AutoWire)实体beanpublic class People { private int id; private String name; private int age; private Dog dog; ...... public People(Dog dog) { this.dog = dog; } ......}通过配置 default-autowire 属性,Spring IoC 容器可以自动为程序注入 bean。默认是 no原创 2020-06-07 14:54:22 · 134 阅读 · 0 评论 -
Java中过滤器和拦截器的区别
过滤器 (Filter)过滤器的配置比较简单,直接实现Filter 接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看到Filter 接口中定义了三个方法。1.init() :该方法在容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。「注意」:这个方法必须执行成功,否则过滤器会不起作用。2.doFilter() :容器中的每一次请求都会调用该方法, FilterChain 用来调用下一个过滤器 Filter。3.destroy():当容器销毁 过滤器实转载 2020-06-07 10:25:47 · 694 阅读 · 0 评论 -
Spring的初体验-1
一. 概述官网 https://spring.io/原创 2020-06-07 00:12:42 · 251 阅读 · 0 评论 -
MySQL及Java中如何保证数值计算的精度
一. MySQL中如何保证数值精度在MySQL数据库中使用decimal类型的字段存储数值类型column_name decimal(P,D);D:代表小数点后的位数P:有效数字位数。小数点也算一位。例子CREATE TABLE `test_decimal` ( `id` int(11) NOT NULL, `amount` decimal(10,2) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8二. Java中使用BigDecima原创 2020-06-06 12:36:49 · 1029 阅读 · 0 评论 -
SpringBoot 实现并发登录人数控制
通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,Spring Security 提供了这样的功能,本文讲解一下在没有使用Security的时候如何手动实现这个功能本文借鉴了https://jinnianshilongnian.iteye.com/blog/2039760如果你是使用 Shiro + Session 的模式,可以阅读此文demo 技术选型SpringBootJWTFilterRedis + RedissonJWT(token)存储在Red转载 2020-06-06 12:07:22 · 1146 阅读 · 0 评论 -
SpringBoot实现快速导出Excel
一. SpringBoot实现快速导出Excel工作中经常遇到导出Ecxel功能,这里就给出完整示例代码,可以直接使用。引入依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version></dependency>ExcelSheetSett转载 2020-05-31 10:42:57 · 824 阅读 · 0 评论