java

SpringBoot 整合 Shiro 密码登录的实现代码

2021-02-23
导入依赖(pom.xml) <!--整合Shiro安全框架--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> <!--集成jwt实现token认证--> <dependency

如何处理@PathVariable中的特殊字符问题

2021-02-23
上代码: @GetMapping(value="/user/{useraccount}") public void getUserAccount(@PathVariable("useraccount") String userAccount) { logger.info("useraccount :" + userAccount); } 正常访问: /user/zhangsan 打印:useraccount : zhangsan 看似一切正常 b

SpringCloud Open feign 使用okhttp 优化详解

2021-02-23
我就废话不多说了,大家还是直接看代码吧~ <!--web 模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!--排除tomcat依赖 --> <exclusion> <artifactId&

mybatis 事务回滚配置操作

2021-02-23
在mybatis进行批量操作的时候,插入多条数据时,设置回滚但是前面几条还是插入,经过尝试 问题所在: 官网api上openSession(false)就可以回滚了,但是用session.getConnection().getAutoCommit()查看还是true 解决方法: 将DataSource配置改为AutoCommit(false) 将conn设置setAutoCommit(false),用conn进行提交,回滚操作 例子: SqlSession session = sqlSessio

Spring Cloud Consul的服务注册与发现

2021-02-23
运行Consul 以Windows为例,下载解压后,以开发模式运行: consul agent --dev 启动成功后,可以访问Consul提供的管理页面,默认端口为8500,页面上显示了已注册服务的列表,包括它们的运行状况等信息. 服务注册 1.添加Spring Cloud Consul依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artif

Java之 TreeSet的详细使用说明

2021-02-23
第1部分 TreeSet介绍 TreeSet简介 TreeSet 是一个有序的集合,它的作用是提供有序的Set集合.它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口. TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法. TreeSet 实现了NavigableSet接口,意味着它支持一系列的导航方法.比如查找与指定目标最匹配项. TreeSet 实现了Cl

java 自定义可继承枚举Enum的案例

2021-02-23
一.定义enum抽象类 public class AbstractEnum { private static final Map<String, AbstractEnum> nameEnumMap = new ConcurrentHashMap<>(); @Getter protected String name; protected AbstractEnum () { } protected AbstractEnum(String name) { this.name = name

基于SpringMVC中的路径参数和URL参数实例

2021-02-23
1.SpringMVC中的路径参数就是指在路径中添加参数,用于实现伪静态是很好的. 2.路径参数实现方式(一个Controller方法) @RequestMapping(value="/page/{name}/{age}",method=RequestMethod.GET) public String getName(ModelMap map,@PathVariable("name") String name,@PathVariable("age"

java实现简单石头剪刀布游戏

2021-02-23
本文实例为大家分享了java实现简单石头剪刀布游戏的具体代码,供大家参考,具体内容如下 问题描述 Alice, Bob和Cindy一起玩猜拳的游戏.和两个人的猜拳类似,每一轮,他们会从石头.剪刀.布中各自选一个出拳,基本的胜负规则是石头赢剪刀.剪刀赢布.布赢石头.如果一轮中正好可以分成胜负两边,则负边的每个人要支付给胜边的每个人一块钱.如果无法分成胜负两边,则都不出钱.比如,如果Alice出石头,而Bob和Cindy都出布,则Alice要分支付Bob和Cindy一块钱.再如,如果Alice出石头

解决Feign切换client到okhttp无法生效的坑(出现原因说明)

2021-02-23
提示:如果只看如何解决问题,请看文章的末尾如何解决这个问题 1. 场景描述 最近项目中使用了feign当做http请求工具来使用.相对于httpclient.resttemplate来说,fegin用起来方便很多. 然后项目有httptrace的需求,需要输出请求日志. 所以就开启了feign自己的日志,发现它自带的日志是debug级别才能打印.而且是逐行打印的,看日志非常的不方便.所以需要输出json格式的日志最好. 2.解决步骤 2.1 引入feign依赖 <dependency> <

SpringBoot 配置 okhttp3的操作

2021-02-23
1. Maven 添加依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.10.0</version> </dependency> 2. application.properties 配置文件 ok.http.connect-timeout=30 ok.http.re

Mybatis注解开发单表、多表操作的实现代码

2021-02-23
一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了 常用注解 @Select("查询的 SQL 语句"):执行查询操作注解 @Insert("查询的 SQL 语句"):执行新增操作注解 @Update("查询的 SQL 语句"):

解决SpringCloud Config结合github无法读取配置的问题

2021-02-22
前言 配置中心存放文件在github是读取过程,可能你会出现读取不到配置信息.本次笔者将这一过程进行详细介绍. 准备 父工程 由于笔者是使用聚合工程,所以这次也是把相关的工程创建说明写上.当然你也可以完全创建两个独立的工程来引用. 创建父工程时直接只有一个pom文件,以下是这个文件的依赖信息 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache

如何用Spring发送电子邮件

2021-02-22
简介 Spring基于javax.mail封装了一套用于发送电子邮件的API,位于org.springframework.mail包下,下面将介绍下发送普通文本邮件和基于thymeleaf模版的邮件. 普通邮件 导入javax.mail依赖 <!-- ...... --> <!-- 省略Spring依赖 --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax

java 异常被catch后 将会继续执行的操作

2021-02-22
我就废话不多说了,大家还是直接看代码吧~ import java.util.UUID; public class Test { public static void main(String[] args) { try { int i = 2/0; } catch (Exception e) { e.printStackTrace(); } try { System.out.println("try2"); } catch (Exception e) { // TODO: handle

SpringBoot+Prometheus+Grafana实现应用监控和报警的详细步骤

2021-02-22
背景 SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是目前比较常用的方案之一.它们三者之间的关系大概如下图: 开发SpringBoot应用 首先,创建一个SpringBoot项目,pom文件如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</art

java生成验证码图片的方法

2021-02-22
本文实例为大家分享了java生成验证码图片的具体代码,供大家参考,具体内容如下 示例一: import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; import javax.imageio.ImageIO; import javax.servlet.http.HttpServ

java 异常之手动抛出与自动抛出的实例讲解

2021-02-22
java异常处理机制的两类 1.抓:异常的处理,有两种方式 ① try-catch-finally ② throws 2.抛: ① 自动抛出 可以理解为所有没有使用throw关键字的异常处理都是自动抛出,由jvm进行判断和抛出. ②手动抛出 throw + 异常类的对象 >异常类可以是现成的,也可以是自己创建的异常类, 抛出异类的类型:若是RuntimException,可以不用显示处理. 若是一个Exception,必须要显示的处理. /* *1.手动抛出一个异常的例子 */ public c

浅谈@RequestParam 参数是否必须传的问题

2021-02-22
一.源码展示 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestParam { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolea

java 实现黄金分割数的示例详解

2021-02-22
黄金分割数 0.618 与美学有重要的关系.舞台上报幕员所站的位置大约就是舞台宽度的 0.618 处, 墙上的画像一般也挂在房间高度的 0.618 处,甚至股票的波动据说也能找到 0.618 的影子- 黄金分割数是个无理数,也就是无法表示为两个整数的比值. 0.618 只是它的近似值,其真值可以通过对 5 开方减去 1 再除以 2 来获得, 我们取它的一个较精确的近似值:0.618034 有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊! 1 3 4 7 11 18 29 47 -