java

Java利用广度优先搜索实现抓牛问题

2022-06-27
目录 一.原问题链接 二.输入和输出 三.输入和输出样例 四.代码 五.测试 一.原问题链接 http://poj.org/problem?id=3278 二.输入和输出 1.输入 两个数,第1个数代表农夫的位置,第2个数代表牛的位置 2.输出 农夫抓牛的最小步数 三.输入和输出样例 1.输入样例 5 17 2.输出样例 4 四.代码 package graph.poj3278; import java.util.LinkedList; import java.util.Queue; impor

feign 打印日志不显示的问题及解决

2022-06-27
目录 feign打印日志不显示 feign基本使用 Feign 概述 Feign 入门案例 Feign 工作原理 feign打印日志不显示 1.是否有设置 feign 的 Logger.Level @Configuration public class FeignClientConfig {     @Bean     Logger.Level feignLogLevel() {         return Logger.Level.FULL;     } } 2.查看是否有在 yml 或者

springboot 全局异常处理和统一响应对象的处理方式

2022-06-27
目录 springboot异常处理 SpringBoot 默认的异常处理机制 SpringBoot 全局异常处理 1. 局部异常处理 2. 全局异常处理 自定义异常 统一响应对象 定义统一的响应对象 枚举信息 响应对象 springboot异常处理 SpringBoot 默认的异常处理机制 默认情况,SpringBoot 提供两种不同响应方式 一种是浏览器客户端请求一个不存在的页面或服务端异常时,SpringBoot默认会响应一个html 另一种是使用postman等调试工具请求不存在的url或

一文了解Spring中拦截器的原理与使用

2022-06-27
目录 1.Spring中的拦截器 1.1HandlerInterceptor拦截器 1.2 MethodInterceptor拦截器 2.二者的区别 1.Spring中的拦截器 在web开发中,拦截器是经常用到的功能.它可以帮我们预先设置数据以及统计方法的执行效率等等. 今天就来详细的谈一下spring中的拦截器.spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor. 1.1HandlerInterceptor拦截器 Handler

Java实现HTML转为Word的示例代码

2022-06-27
本文以Java代码为例介绍如何实现将HTML文件转为Word文档(.docx..doc).在实际开发场景中可参考此方法来转换.下面详细方法及步骤. 在编辑代码前,请先在程序中导入Spire.Doc.jar,导入方法如下: 方法1 将Free Spire.Doc for Java包下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.然后在IDEA中打开“Project Structure”界面,然后执行如图步骤来手动导入本地路径下的jar文件: 方法2 通过Maven仓库下载导入

MybatisPlus查询条件为空字符串或null问题及解决

2022-06-27
目录 查询条件为空字符串或null问题 问题描述 解决办法 查询表的时候有些字段为空问题 亲测,已经解决 查询条件为空字符串或null问题 问题描述 工作种当使用mybatisplus框架进行条件查询时,会出现参数为空字符串或者null也走查询条件,写一篇文章记录一下. String name = "张三"; LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.eq(User::g

SpringBoot&nbsp;MyBatis保姆级整合教程

2022-06-27
目录 Spring Boot整合MyBatis 数据准备 创建项目引入相应的启动器 编写与数据库表 编写配置文件 注解方式整合Mybatis 配置文件的方式整合MyBatis 创建接口类 创建XML映射文件 配置XML映射文件路径 编写单元测试进行接口方法测试 Spring Boot整合MyBatis MyBatis 是一款优秀的持久层框架,Spring Boot官方虽然没有对MyBatis进行整合,但是MyBatis团队自行适配了对应的启动器,进一步简化了使用MyBatis进行数据的操作 基础

使用Spring Boot+gRPC构建微服务并部署的案例详解

2022-06-27
目录 1.  为什么要用Istio? 1.1.  为什么要使用gRPC作为通信框架? 1.2. 编写业务代码 1.3、 编写Dockerfile 2. 编写部署文件 3. 部署应用到Istio 大家好,搞微服务也有好几年时间,从16年开始就一直关注微服务,到现在一直在使用的还是SpringCloud原生那套,虽然后来出现了SpringCloud Alibaba,但由于前面的所有系统框架都已定,就没有在变化,而在微服务的实施过程,为了降运维的服务度,先后使用了jenkins,docker, kub

如何利用Java使用AOP实现数据字典转换

2022-06-27
目录 简介 案例介绍 案例实现 切面定义 总结 简介 AOP也是我们常说的面向切面编程,AOP在我们开发过程中应用也比较多,在这里我们就基于AOP来实现一个数据字典转换的案例. 案例介绍 相信各位在写代码的时候肯定有过这样的经历,我们设计数据库时对于字典类的数据一般都会采用字典码进行存储,而不是直接使用字典值.首先是因为这是一种开发规范,其次使用编码也会利于数据存储,数据整体也会比较干净整洁. 数据字典编码的定义一般也会做一些分类,比如说U01开头代表用户类型,U02开头代表用户性别等等,这样也

mybatis中返回多个map结果问题

2022-06-27
目录 mybatis返回多个map结果 mybatis返回map类型的注意事项及小技巧 1.resultType="java.util.Map" 2.定义一个resultMap标签, 3.返回的Map对象 mybatis返回多个map结果 如果返回一条结果,xml直接这样写: <select id="searchncomedateByInvestID" resultMap="java.util.HashMap">     select

Java多线程同步工具类CountDownLatch详解

2022-06-26
目录 简介 核心方法 CountDownLatch如何使用 CountDownLatch运行流程 运用场景 总结 简介 CountDownLatch是一个多线程同步工具类,在多线程环境中它允许多个线程处于等待状态,直到前面的线程执行结束.从类名上看CountDown既是数量递减的意思,我们可以把它理解为计数器. 核心方法 countDown():计数器递减方法. await():使调用此方法的线程进入等待状态,直到计数器计数为0时主线程才会被唤醒. await(long, TimeUnit):在

Spring Boot面试必问之启动流程知识点详解

2022-06-26
目录 一 面试提问 1.1 Spring Boot启动流程 1.2 SpringBoot自动装配 二 知识点详解 2.1 SpringBoot核心注解: 2.2详细启动流程(结合源码) 总结 一 面试提问 1.1 Spring Boot启动流程 ???面试官:说说SpringBoot启动流程吧 ?? 我 : 首先从main找到run()方法,在执行run()方法之前new一个SpringApplication对象 进入run()方法,创建应用监听器SpringApplicationRunList

关于spring循环依赖问题及解决方案

2022-06-26
目录 一.三种循环依赖的情况 比如几个Bean之间的互相引用 甚至自己“循环”依赖自己 二.解决方案 如何获取依赖 三.解决循环依赖必须要三级缓存吗 结论 四.无法解决的循环依赖问题 1.在主bean中通过构造函数注入所依赖的bean 2.总结 一.三种循环依赖的情况 ①构造器的循环依赖: 这种依赖spring是处理不了的,直接抛出BeanCurrentlylnCreationException异常. ②单例模式下的setter循环依赖: 通过“三级缓存”处理循环依赖,能处理. ③非单例循环依赖

Java详解实现ATM机模拟系统

2022-06-26
目录 一.概述 二.程序概要设计 三.程序详细设计 四.程序演示 一.概述 (1)选题分析 (2) 开发环境 开发环境,选择IDEA这一Java开发软件,基于JDK1.8版本,在本机window上开发本ATM模拟程序. 二.程序概要设计 (1) 功能模块设计 经过对题目的分析,把本ATM模拟程序分为管理员端和用户模式两大模块.其中,管理员具有查询所有账户.导出所有账户信息到文件.注销功能.用户模块具有查询余额.ATM转账.ATM存款.ATM取款.修改密码.查询交易记录.导出记录.退卡等功能. 系

Mybatis&nbsp;plus中的like查询问题

2022-06-26
目录 Mybatis plus中like查询问题 解决方法也很简单,换个写法 Mybatis plus中like使用说明 like的四种用法 Mybatis plus中like查询问题 又谈到了Mybatis plus了,真的很是痛心疾首,在做模糊查询的时候出现了一个问题,版本还是2.0.8,我觉得大问题没有小问题不断吧! 上代码         @MethodAnnot()         public static List<VwUserRole> getVwUserRoleByList(

Mybatis中xml的动态sql实现示例

2022-06-26
目录 动态SQL简介 一.#{}与${}区别#{}表示一个占位符,使用占位符可以防止sql注入, 二.传递包装类型 三.动态sql—类型 四.动态sql—详解 (一)if 语句处理 (二)choose (when,otherwize)语句处理 (三)trim 语句处理 (四)where 语句处理 (五)foreach 语句处理 动态SQL简介 动态 SQL 是 MyBatis 的强大特性之一. 如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接

Mybatis-plus&nbsp;selectByMap条件查询方式

2022-06-26
目录 selectByMap条件查询 selectMaps方法返回值字段为空不显示问题 1.application.yaml设置mybayisPlus 2.添加call-setters-on-nulls: true之后 selectByMap条件查询 List<T> selectByMap(@Param("cm") Map<String, Object> columnMap); 如上,可以看到BaseMapper中的selectByMap接口需要的参数是Map&

Spring&nbsp;Cloud&nbsp;oauth2&nbsp;认证服务搭建过程示例

2022-06-26
目录 安装httpie 导入数据库脚本 sts中导入项目 修改 POM文件 修改配置文件 修改主类文件 编译,运行 测试 查看Redis缓存 安装httpie 安装httpie 需要 python 环境 pip install --upgrade httpie 进入D:\Project目录,在此目录下打开CMD,调用httpie,创建 oauth2 项目 http -d https://start.spring.io/starter.zip javaVersion==17 groupId==co

Java8中Stream的详细使用方法大全

2022-06-26
目录 一.概述 1.使用流的好处 2.流是什么? 二.分类 三.Stream的创建 1.通过 java.util.Collection.stream() 方法用集合创建流 2.使用 java.util.Arrays.stream(T[]array)方法用数组创建流 3.使用 Stream的静态方法:of().iterate().generate() 四.Stream API简介 1.遍历/匹配(foreach/find/match) 2.按条件匹配filter 3.聚合max.min.count

SpringBoot&nbsp;Web详解静态资源规则与定制化处理

2022-06-26
目录 1.相关概念 2.静态资源目录 3.静态资源访问前缀 4.欢迎页支持 5.自定义favicon 6.源码分析 1.相关概念 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议使用Spring Boot的默认配置方式,如果需要特殊处理的再通过配置文件进行修改. 如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc, 增加该注解以后WebMvcAuto