java

Java使用定时器编写一个简单的抢红包小游戏

2022-06-30
目录 1.新建项目 2. 添加 计时器,按钮组件 3.抢红包业务逻辑 4.效果演示 1.新建项目 2. 添加 计时器,按钮组件 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:widt

深入了解Java&nbsp;File分隔符和Path分隔符的使用

2022-06-30
目录 一.文件分隔符 1.获取文件分隔符 2.构造一个文件路径 3.路径分隔符 总结 大家好,我是指北君. 不同的操作系统使用不同的字符作为文件和路径分隔符.当我们的应用程序需要在多个平台上运行时,我们需要正确处理这些问题. Java帮助我们选择一个合适的分隔符,并提供了一些函数来帮助我们创建能在主机操作系统上运行的路径. 在本文中,我们将了解如何编写代码来使用正确的文件和路径分隔符. 一.文件分隔符 文件分隔符是用来分隔构成特定位置路径的目录名的字符. 1.获取文件分隔符 在Java中,有几种

Java线程的异常处理机制详情

2022-06-30
目录 前言 线程的异常处理机制 小结 线程池场景下的异常处理 小结 其他 前言 启动一个Java程序,本质上是运行某个Java类的main方法.我们写一个死循环程序,跑起来,然后运行jvisualvm进行观察 可以看到这个Java进程中,一共有11个线程,其中10个守护线程,1个用户线程.我们main方法中的代码,就跑在一个名为main的线程中.当Java进程中跑着的所有线程都是守护线程时,JVM就会退出. 在单线程的场景下,如果代码运行到某个位置时抛出了异常,会看到控制台打印出异常的堆栈信息.

详解springboot解决CORS跨域的三种方式

2022-06-30
目录 一.实现WebMvcConfigurer接口 二.实现filter过滤器方式 三.注解@CrossOrigin 四.实战 五.cookie的跨域 一.实现WebMvcConfigurer接口 @Configuration public class WebConfig implements WebMvcConfigurer { /** * 添加跨域支持 */ @Override public void addCorsMappings(CorsRegistry registry) { // 允

SpringBoot2之PUT请求接收不了参数的解决方案

2022-06-30
目录 HiddenHttpMethodFilter HttpPutFormContentFilter SpringBoot2之PUT请求接收不了参数的解决办法,这个问题,关乎两个Filter过滤器,是spring3和3.5之后提供的,目的就是解决RESTful中PUT请求或者其他请求的问题. 下面请看详细内容 HiddenHttpMethodFilter html中form表单只支持GET与POST请求,而DELETE.PUT等method并不支持,spring3添加了一个过滤器,可以将这些请求

Java线程之间的共享与协作详解

2022-06-30
目录 前言 一.进程和线程 1.进程是程序运行资源分配的最小单位 2.线程是CPU 调度的最小单位,必须依赖于进程而存在 3.线程无处不在 二.CPU 核心数和线程数的关系 1.多核心 2.多线程 3.核心数.线程数 三.CPU 时间片轮转机制 四.并行和并发 1.并发 2.并行 五.高并发编程 1.CPU 资源利用的充分 2.加快用户响应时间 3.使代码模块化.异步化.简单化 六.多线程注意事项 1.线程之间的安全性 2.线程之间的死锁 3.线程多了会将服务资源耗尽形成死机.当机 七.多线程注

Springboot使用put、delete请求报错405的处理

2022-06-30
目录 Springboot使用put.delete请求报错 Springboot错误提示405状态 一.错误提示405状态截图 二.405状态的原因 三.解决方法 Springboot使用put.delete请求报错 SpringBoot给我们自动配置好了HiddenHttpMethodFilter,但是最近发现好像用不了,我用的是SpringBoot版本是2.2.2,默认配置被改成了false,也就是关闭了自动配置,不知道sprongboot什么鬼,坑!!! There was an unex

Windows下RabbitMQ安装及配置详解

2022-06-30
目录 1.安装Erlang 2.安装rabbitmq rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上. 1.安装Erlang 下载地址:https://www.erlang.org/downloads,本文选择OTP 21.0.1 Windows 64-bit Binary File?(91707

使用mongoTemplate实现多条件加分组查询方式

2022-06-30
目录 mongoTemplate实现多条件查询 mongoTemplate分组查询的坑 先来一个常见的错误信息: Due to limitations of the com.mongodb.BasicDocument, you can't add a second '$and' expression specified as '$and : 错误原因: 在一个 Criteria 对象中调用了多次 andOperator() 方法 mongoTemplate实现多条件查询 多个条件的查询只需要创建

使用SpringBoot根据配置注入接口的不同实现类(代码演示)

2022-06-30
目录 一.引言 二.代码演示 1.问题描述 2.解决方案 2.1使用@Autowired的时候将接口变量名改为实现类的限定名 2.2 使用@Autowired配合@Qualifier指定限定名注入实现类 2.3@ConditionalOnProperty 三.总结 一.引言 我们在使用springboot进行开发的时候经常用到@Autowired和@Resource进行依赖注入,但是当我们一个接口对应多个不同的实现类的时候如果不进行一下配置项目启动时就会报错,那么怎么根据不同的需求注入不同的类型

SpringBoot集成RocketMQ发送事务消息的原理解析

2022-06-30
目录 简介 原理 具体实现 消费者 消费者 生产者消息监听器 消息事务测试 正常测试 异常测试 代码调整 执行结果 总结 简介 RocketMQ 事务消息(Transactional Message)是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败.RocketMQ 的事务消息提供类似 X/Open XA 的分布事务功能,通过事务消息能达到分布式事务的最终一致. 原理 RocketMQ事务消息通过异步确保方式,保证事务的最终一致性.设计的思想可以借鉴两个阶段提交事

SpringCloud-Spring Boot Starter使用测试及问题小结

2022-06-30
目录 Spring Boot Starter是什么? 以前传统的做法 使用 Spring Boot Starter 之后 starter 的理念: starter 的实现: 创建Spring Boot Starter步骤 具体操作步骤: 创建业务类: 测试如下: Spring Boot Starter是什么? Spring Boot Starter 是在 SpringBoot 组件中被提出来的一种概念.简化了很多烦琐的配置.通过引入各种 Spring Boot Starter 包可以快速搭建出一

springboot2+es7使用RestHighLevelClient的示例代码

2022-06-29
目录 一.引入依赖jar 二.application.properties配置 三.使用 其它 由于spring和es的集成并不是特别友好,es的高低版本兼容问题.api更新频率高等问题,所以我选择是官网提供的原生Client(RestHighLevelClient),但又不想去关注es的配置类以及和spring的集成配置.jar包冲突等问题,所以使用spring-boot-starter-data-elasticsearch. 一.引入依赖jar         <dependency>  

SpringBoot中的PUT和Delete请求使用

2022-06-29
目录 PUT和Delete请求使用 我们可以通过如下三个步骤实现 解决办法 如何支持put/delete请求 1.在application.properties中配置 2.使用时依旧和springmvc一样 PUT和Delete请求使用 在Form表单中,只支持get和post方式,而为了实现put方式 我们可以通过如下三个步骤实现 1)SpringMVC中配置HiddenHttpMethodFilter 2)页面创建一个post表单 3)创建一个input项,name="_method&quo

JavaWeb详细讲述Cookie和Session的概念

2022-06-29
目录 1.会话 2.保存会话的两种技术 3.Cookie 4.Session 1.会话 会话: 用户打开了一个浏览器,点击了很多超链接,访问多个web次元,关闭浏览器,这个过程可以称之为会话 有状态会话: 带有访问记录的会话 1.服务端会给客户端一个cookie,客户端下次访问时携带cookie访问就可以了 cookie 2.服务端登记客户端访问过,下次访问时匹配到客户端: session 2.保存会话的两种技术 cookie 客户端技术(响应,请求) session 服务器技术,利用这个技术,

Java&nbsp;天生就是多线程

2022-06-29
目录 一.Java 中的线程 1.启动 2.中止 3.阻塞 4.深入理解run 和 start 5.join 方法 6.线程优先级 7.守护线程 8.synchronized 内置锁 9.对象锁和类锁 二.总结 一.Java 中的线程 一个Java 程序从main() 方法开始执行,然后按照既定的代码逻辑执行,看似没有其他线程参与,但实际上Java 程序天生就是多线程程序,因为执行main() 方法的是一个名称为main 的线程. public static void main(String[]

Spring&nbsp;Data&nbsp;JPA踩坑记录(@id&nbsp;@GeneratedValue)

2022-06-29
目录 Spring Data JPA踩坑记录 JPA踩坑:No property xxx found for type xxx 问题发现 问题解决 Spring Data JPA踩坑记录 最近在做自己的一个项目时 使用了spring jpa 由于数据库用的是mysql 在给实体类entity 的id给注解时@Id遇到了一个坑 自己找了许久才在stackoverflow 上找到了答案 注意 再查询数据库的时候并不会因此报错 而当你的主键是自增的时候 在添加数据的时候就会报错了 看看我们的实体类 注

springboot通过jar包启动中文日志乱码问题及解决

2022-06-29
目录 jar包启动中文日志乱码 问题场景 最终定位到logback.xml配置文件 springboot jar部署 控制台日志乱码 解决办法 jar包启动中文日志乱码 问题场景 1.idea控制台中文正常 2.打成jar包,通过java -jar运行,通过log打印的日志出现中文乱码,System.out.print("")输出正常. 最终定位到logback.xml配置文件 修改前: <include resource="org/springframework/bo

java如何删除以逗号隔开的字符串中某一个值

2022-06-29
目录 删除以逗号隔开的字符串中某一个值 移除以逗号分隔的字符串中指定元素 适用场景 核心代码 测试验证 删除以逗号隔开的字符串中某一个值 例如要删除 “1,2,3,4” 中的 2,返回 “1,3,4” import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class test { public static void main(String[] args) { String str="

详解JavaSE中抽象类与接口的定义及使用

2022-06-29
目录 一.抽象类 1.抽象类定义 2.抽象方法 二.接口 1.接口定义 2.类实现接口 3.接口与多态联合 4.extends和implements 5.接口在开发当中的作用 6.is has like 7.抽象类与接口 一.抽象类 1.抽象类定义 1.什么是抽象类? 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类. 类到对象是实例化,对象到类是抽象. 抽象类无法实例化,无法创建对象.抽象类是类和类之间有共同特征,将这些具有共同特征的类再进一步抽象,就形成了抽象类.由于类本身是