Java
文章平均质量分 53
ShawnWang04
不要假装努力!
展开
-
forEach 循环时 return 语句 结束不了循环
public static void main(String[] args) { List<String> stringList = new ArrayList<>(10); stringList.add("我"); stringList.add("是"); stringList.add("好"); stringList.add("人"); stringList.add("你");...原创 2022-05-19 14:53:39 · 1899 阅读 · 0 评论 -
使用Transactional出现了长事务,导致生产事故
@Transactional导致的生产事故 事故原因分析 如何避免长事务? 小结 在Spring中进行事务管理非常简单,只需要在方法上加上注解@Transactional,Spring就可以自动帮我们进行事务的开启、提交、回滚操作。甚至很多人心里已经将Spring事务与@Transactional划上了等号,只要有数据库相关操作就直接给方法加上@Transactional注解。不瞒你说,我之前也一直是这样,直到使用@Transactional导致了一次生产事故,...转载 2022-04-16 16:59:54 · 345 阅读 · 0 评论 -
如何保证数据库和缓存的一致性?
1. 问题分析 2. Cache-Aside 2.1 读缓存 2.2 写缓存 2.3 延迟双删 2.4 如何确保原子性 3. Read-Through/Write-Through 3.1 Read-Through 3.2 Write-Through 4. Write Behind 1. 问题分析首先我们来看看为什么会有这个问题!我们在日常开发中,为了提高数据响应速度,..转载 2022-03-29 16:05:22 · 194 阅读 · 0 评论 -
浅谈Java自定义注解及使用场景
Java自定义注解原创 2021-12-09 13:23:20 · 847 阅读 · 0 评论 -
Nacos 解析yml文件出错 java.nio.charset.MalformedInputException: Input length = 1
如果出现这个错误,说明已经找到这个yml文件了 不要再去从找到没找到下手了这个错误的原因是解析错误,解析 出错了原因: 字符解析不了 如有中文注释等 ,或者说配置格式问题解决方案: 如果是中文注释问题 启动时 java -Dfile.encoding=utf-8 -jar XXX.jar 使用这种方式即可 如果配置出错 就去查配置问题...原创 2021-11-02 14:23:38 · 2261 阅读 · 0 评论 -
SpringCloud 中 OpenFeign 传参调用
提供者服务定义接口@RestControllerpublic class TestController{ @RequestMapping("/init1") public String init(){ return "init1"; } @GetMapping("/init2") public String init2(String name){ return "init2" + name; } .原创 2021-09-30 17:05:56 · 310 阅读 · 0 评论 -
MybatisPlus 3.4.0 版本 PaginationInterceptor 分页过期失效
更改新版配置后,分页功能正常,注意DbType.MYSQL改为自己使用的数据库类型,否则分页也不生效老版本的分页配置@Configurationpublic class MybatisPlusConfig { //3.4.0 之前分页的bean @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor();...原创 2021-07-13 15:43:17 · 2563 阅读 · 0 评论 -
Map List 操作 stream流 排序
map 通过 key值排序 正序 从小到大 并将Value 添加到一个新的List通过value值排序 须将comparingByKey() 更改为 comparingByValue()orederNap 表示 要处理的MapList<Object> alist = new LinkedList<>(); orderMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).forE..原创 2021-07-02 14:55:54 · 3102 阅读 · 0 评论 -
SpringBoot 配合 Interceptor 使用 保证小程序接口安全
1.继承HandlerInterceptor 重写preHandle:拦截处理程序的执行。在 HandlerMapping 确定合适的处理程序对象之后,但在 HandlerAdapter 调用处理程序之前调用。postHandle:拦截处理程序的执行。在 HandlerAdapter 实际调用处理程序之后调用,但在 DispatcherServlet 呈现视图之前调用。可以通过给定的 ModelAndView 向视图公开其他模型对象。afterCompletion:请求处理完..原创 2021-06-28 09:08:15 · 368 阅读 · 0 评论 -
SpringBoot 整合 EasyExcel 数据写入Excel 合并单元格
EasyExcel: 想要简单了解入手的 看官方文档使用说明 · 语雀 (yuque.com) 这里主要是数据写入excel 并且将单元格合并第一步 引入EasyExcel依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</arti...原创 2021-04-26 09:05:12 · 2224 阅读 · 0 评论 -
EasyExcel 读取数据 生成动态属性
引入 easyExcel的依赖 和 cglib的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version> </dependency><!-- https:.原创 2021-03-26 18:16:04 · 2456 阅读 · 4 评论 -
Html2Pdf 比较合适的方式之一
Phantomjs安装官网地址:http://phantomjs.org下载地址:http://phantomjs.org/download.html下载完成后 将压缩包进行解压在bin目录下 新建一个html2pdf.js文件html2pdf.js 代码如下 注意更换你自己要生成的pdf路径var page = require('webpage').create();var system = require('system'); ////读取命令行参数,也就是js文..原创 2021-03-26 16:41:19 · 1542 阅读 · 0 评论 -
Sprint Boot @Value 注入无效的情况分析
1.不能作用于静态变量(static);2.不能作用于常量(final);3.不能在非注册的类中使用(类需要被注册在spring上下文中,如用@Service,@RestController,@Component等);4.使用这个类时,只能通过依赖注入的方式,用new的方式是不会自动注入这些配置的。前提是将SomeService可以扫描到@Servicepublic class SomeService { @Value("${a}") String a; ..原创 2021-03-26 09:42:44 · 503 阅读 · 0 评论 -
File 与 MultipartFile相互转化 以及 图片情况下转化问题
File 转MultipartFile图片情况下 使用注意一定要将ContentType 设置 为你的 图片类型 其他情况下 设置为text/plain;charset=UTF-8 即可File file1 = new File("D:\\img"+"\\"+i+".png"); FileInputStream input = new FileInputStream(file1); MultipartFile multipartFile...原创 2021-03-12 09:07:39 · 615 阅读 · 0 评论 -
SpringCloud Alibaba版本核解 及 分布式事务解决
创建父工程Spring Cloud Alibaba 的环境在父工程中创建,微服务的各个组件作为子工程,继承父工程的环境。Spring Boot —》Spring Cloud —》Spring Cloud Alibabapom.xml 中添加。<dependencyManagement> <dependencies> <!-- Spring Cloud Hoxton --> <dependency>转载 2021-03-07 21:03:35 · 304 阅读 · 0 评论 -
集合Collection总结 和 Spring两大核心
Java基础回顾一、集合 - 通过不同的数据结构存储以及操作数据的工具1.1 Collection1.1.1 ArrayList、Vector1.1.1.1 底层原理ArrayList和Vector底层都是由动态数组实现的1.1.1.2 ArrayList VS VectorArrayList是线程不安全的集合,而Vector是线程安全的集合。Vector本质是JDK1.0的产物,但是集合体系是JDK1.2才推出的新特性。因此,JDK1.2之后sun公司强行的让Vector类实现了Li原创 2021-02-01 21:03:36 · 418 阅读 · 1 评论 -
SpringBoot 写配置类 解决跨域问题
跨域问题 是我们常见的问题 解决方案一: SpringBoot 中写配置类 解决方案二: 使用nginx进行 监听将该配置 放到SpringBootApplication可以扫描到的地方/** * SpringBoot中解决跨域问题 */@Configurationpublic class...原创 2021-01-28 10:10:46 · 329 阅读 · 1 评论 -
Ftp文件服务器 上传 以及 定时读取文件夹
Ftp文件服务器 上传 以及 定时读取文件夹public class MeMainTest { public static void main(String[] args) throws IOException { String hostname = "192.168.10.103"; int port = 21; String username = "ftp_user"; String password = "admi...原创 2021-01-27 09:00:27 · 475 阅读 · 2 评论 -
Java中事务遇到异常,详解
情况一: throw 为了模拟出现异常 这种情况下 事务是不生效的 情况二: ...原创 2021-01-15 17:11:35 · 2629 阅读 · 2 评论 -
通读本文带你掌握Shiro安全认证框架
shiro依赖 shiro-all 及 thymeleaf-extras-shiroShiroConfig配置类package com.qust.config;import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;import org.apache.shiro.mgt.SecurityManager;import org.apache.shiro.spring.web.ShiroFilterFactoryBean;impo...原创 2020-06-09 20:45:07 · 214 阅读 · 0 评论 -
springboot+thymeleaf+jsr303表单验证
@NotNull 一般应用于 基本数据类型@NotEmpty 一般应用于判断列表@NoBlank 验证String字符串类型导入该依赖时 自带 hibernate-validator<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta...原创 2020-06-06 15:46:19 · 348 阅读 · 1 评论 -
sspringboot整合easyexcel
excel导入导出product.java 实体类依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</version> </dependency>...原创 2020-06-05 11:51:30 · 271 阅读 · 0 评论 -
java 后台交互 exchart
后端 传入json@RequestMapping("/pageHelp") @ResponseBody public List<Product> pageHelp(Model model){ List<Product> products = productService.productList(5, 1); return products;// model.addAttribute("products",...原创 2020-06-05 08:02:58 · 204 阅读 · 0 评论 -
一篇文章带你掌握MyBatis Plus
MyBatis Plus国产的开源框架,基于 MyBatis核心功能就是简化 MyBatis 的开发,提高效率。MyBatis Plus 快速上手Spring Boot(2.3.0) + MyBatis Plus(国产的开源框架,并没有接入到 Spring 官方孵化器中)1、创建 Maven 工程2、pom.xml 引入 MyBatis Plus 的依赖<dependency> <groupId>com.baomidou</groupId>转载 2020-05-17 11:23:09 · 318 阅读 · 0 评论 -
Dubbo和zookeeper简单理解
Dubbo由alibaba制造 ,后交给阿帕奇维护的 基于RPC(远程过程调用)高性能的 分布式框架端口号:20880Dubbo提供的协议:dubbo协议(官方推荐使用dubbo采用dubbo协议)、RMI(远程方法调用)、Hessian协议工作原理:http://dubbo.apache.org/zh-cn/index.html 提供有中文文档是一种类似于面向接口进行编程 提供着将服务交给注册中心(zookeeper) 消费者不与提供者直接交流 与注册中心交流 查找到自己...原创 2020-05-08 19:56:05 · 1139 阅读 · 0 评论 -
SSM整合dubbo
项目采用聚合项目依赖<?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:schemaLo...原创 2020-05-07 21:42:45 · 286 阅读 · 0 评论 -
Linux 系统部署 Java 应用
Linux 系统部署 Java 应用服务器 Linux阿里云、华为云、腾讯云安装虚拟机,虚拟机就是在你的电脑中安装一台虚拟的计算机,内存、CPU、硬盘,Linux 安装到虚拟机中。CentOS7,企业级 Linux 的发行版,完全开源,完全免费。安装软件:虚拟机 VMware workstation 15CentOS7安装 Java 环境 JDK 8安装 MySQL 8安装 ...原创 2020-05-03 14:48:36 · 1065 阅读 · 0 评论 -
缓存穿透、缓存雪崩、缓存击穿及解决方案
缓存穿透查询的数据在缓存服务器(Redis)中没有,就绕过缓存服务器 直接与数据库进行IO交互,对服务器造成巨大压力解决方案: 查询数据在redis如果没有,就将该数据设置为null放在redis中 防止暴力攻击缓存雪崩缓存雪崩是指缓存中大量的数据到期,而查询数据巨大 造成数据库压力过大甚至宕机缓存雪崩是很多数据因为过期了所以查不到 因此去向数据库查解...原创 2020-04-26 21:44:11 · 197 阅读 · 0 评论 -
SpringBoot整合redis
导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depe...原创 2020-04-26 21:23:10 · 199 阅读 · 0 评论 -
Redis简单理解及使用
Redis是基于内存为介质的缓存数据库、非关系型数据库 默认端口:6379访问数据量少于百万时 一般用不到redis特点: 因为使用内存,继承的内存的优点 读写速度快 异步持久化 非关系型数据库,采用Key-Value 形式进行存储 Value形式有五种(String、Hash、List、Set、ZSet [有序集合]) 与m...原创 2020-04-23 21:26:21 · 1346 阅读 · 0 评论 -
Redis解决服务器集群session共享
为了防止服务器单点坏,我们通过Nginx引入服务器集群,从而产生了session共享问题。下面 我们通过redis解决session共享问题一、将三个jar包复制到tomcat下lib文件夹下(有几个tomcat复制几个)tomcat最好使用7.x或者以下版本 ,高版本使用tomcat-redis-session-manager-2.0.0.jar会出现notfoundClas...原创 2020-04-22 20:01:35 · 357 阅读 · 0 评论 -
Nginx 使用
Nginx 是一款由俄罗斯人开发的 轻量级 高效率 反向代理的服务器,既可以代理邮箱服务器(IMAP、pop3、SMTP),也可以代理web服务器为了防止单个服务器崩坏,进行服务器集群的负载均衡拥有较好的跨平台性服务器集群问题:无法共享session 解决方案 redis正向代理 :一般情况下 在客户端 代理客户端 的请求到服务器端反向代理:在服务器端 是服务器的代理...原创 2020-04-21 19:39:50 · 760 阅读 · 0 评论 -
SpringBoot整合Swagger2
Swagger 是一个 简单好用的api开发文档工具 , 在前后端分离时 只需要访问localhost:8080/swagger-ui.html 就可以方便前端人员获取后端信息依赖 <dependency> <groupId>io.springfox</groupId> <...原创 2020-04-20 21:08:31 · 209 阅读 · 0 评论 -
SpringBoot整合shiro框架
依赖 其他同SpringBoot依赖相同 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4....原创 2020-04-19 17:14:07 · 273 阅读 · 0 评论 -
SSM整合shiro框架
依赖 这是整合shiro时用到的框架 其余SSM框架依赖不变<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.4.1</ver...原创 2020-04-19 14:54:01 · 273 阅读 · 0 评论 -
加密应用 Base64 和 Md5
Base64 加密方式是双向的 即可以加密 也可以解密加密后的长度 根据 加密前长度 变化而变化 String str = "I LOVE YOU"; //加密 String string = Base64.encodeToString(str.getBytes()); System.out.println(string)...原创 2020-04-13 21:28:46 · 139 阅读 · 0 评论 -
shiro 简单使用
Apache Shiro 是 Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等Realm 类似与数据源 一、org.apache.shiro.realm.text.IniRea...原创 2020-04-13 19:36:45 · 192 阅读 · 0 评论 -
SpringBoot整合JPA
SpringBoot整合 JPA 配置文件spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.pas...原创 2020-04-11 19:24:38 · 101 阅读 · 0 评论 -
SpringBoot整合jsp、thymeleaf、mybatis
SpringbootTemplatesApplication 是springboot的启动类该类位置必须同entity、mapper等包的级别相同,因为它只能向下扫描 意思就是 只能扫描它子包及同等级包application.yml 是springb...原创 2020-04-09 21:29:41 · 195 阅读 · 0 评论 -
SpringBoot学习——所需依赖
SpringBoot项目实际上就是一个Maven的父模块 包含了很多依赖SpringBoot整合JSP (由于效率低下 不推荐使用) <!--web依赖--> <dependency> <groupId>org.springframework.boot</groupId> ...原创 2020-04-09 21:05:57 · 243 阅读 · 0 评论