项目开发必知知识点
文章平均质量分 61
小技能
小码哥222
这个作者很懒,什么都没留下…
展开
-
java中 BigDecimal和BigInteger详解
文章目录1 前言2 BigDecimal2.1 BigDecimal构造方法2.2 BigDecimal的加减乘除3 BigInteger1 前言Java提供了两个用于高精度计算的类:BigInteger 和 BigDecimal。这两个类提供了加减乘除操作的方法。BigInteger与BigDecimal都是不可变的(immutable)的,在进行每一步运算时,都会产生一个新的对象。它们都扩展Number类且实现Comparable接口,可以使用new BigInteger(String) 或原创 2021-09-09 14:26:46 · 742 阅读 · 0 评论 -
Synchronized和@Transactional 使用时,同步失效问题
由于spring的aop,会在update方法之前开启事务,之后再加锁,当锁住的代码执行完成后,在提交事务,因此synchronized代码块执行是在事务之内执行的,可以推断在代码块执行完时,事务还未提交,其他线程进入synchronized代码块后,读取的库存数据不是最新的。解决上面的方法,比较简单的可以在update方法之前加上synchronized,在还没有开事务之间就加锁,那么就可以保证线程同步。ref:https://blog.csdn.net/NANJI_WUBING/article/d原创 2021-07-19 15:50:11 · 370 阅读 · 0 评论 -
ThreadLocal获取用户信息
系列文章目录文章目录系列文章目录前言1. ThreadLocal在web项目中的使用姿势2. 代码实现2.1 编写ThreadLocal工具类2.2 编写拦截器前言在之前的政企系统中,我们随时都可能需要获取当前操作的用户信息。针对这个需求,我们使用ThreadLocal 来解决。若使用了SpringSecurity,则SpringSecurity中提供了对应的解决方案(大概也是用ThreadLocal 实现的)。此模块中演示ThreadLocal web项目中的使用姿势。将token解析后,得原创 2021-07-12 01:04:08 · 2049 阅读 · 3 评论 -
fastjson之——@JSONField
refer:https://blog.csdn.net/a984171281/article/details/107256198文章目录前言区别1.框架不同:2.用法不同:前言@JsonProperty 和 @JSONField 注解,,,,,都是为了解决bean与json字段不一致问题,或者字段定义不符合前端所需要的标准。只是他们有些不同。区别1.框架不同:@jsonProperty是 Jackson的包,而@jsonfield是fastjson的包2.用法不同:(1)bean转换原创 2021-05-11 17:58:52 · 947 阅读 · 0 评论 -
fastjson之——TypeReference
refer:https://blog.csdn.net/qq_28807077/article/details/111049345反序列化时,对泛型的反序列化,不能写成如下的方式,会报错:String userString = "[{\"userId\":\"111\",\"userName\":\"Tom\"},{\"userId\":\"222\",\"userName\":\"Jerry\"}]";List<UserInfo> input = new ArrayList<&原创 2021-05-11 17:48:34 · 2543 阅读 · 0 评论 -
Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践
参考:Mysql中INSERT … ON DUPLICATE KEY UPDATE的实践:https://www.jianshu.com/p/78ea17c6d190文章目录一、前言二、INSERT ... ON DUPLICATE KEY UPDATE命令 使用2.1 更新/插入多记录下使用2.2 MyBatis下使用三、总结一、前言在日常业务开发中经常有这样一个场景,如果数据库已经存在同一主键的记录,则执行update操作,如果不存在,则执行insert操作。【注意】 这里的同一主键的记录原创 2021-04-08 10:08:34 · 495 阅读 · 0 评论 -
@ConditionalOnProperty注解理解
文章目录@ConditionalOnProperty(name = “”, havingValue = “”)@ConditionalOnProperty(name = “”, havingValue = “”)简单解释一下今天遇到的一个注解@ConditionalOnProperty(name = “”, havingValue = “”)我们进入注解看看注解是怎么实现的:@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.TY原创 2021-04-02 11:52:17 · 800 阅读 · 0 评论 -
(三)SpringBoot整合log4j的配置文件详解
参考:https://blog.csdn.net/zheng0518/article/details/69558893文章目录<?xml version="1.0" encoding="UTF-8"?><!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出--><!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设原创 2021-04-01 12:00:26 · 930 阅读 · 0 评论 -
(一)SpringBoot项目 如何集成「logback」「log4j」日志框架?
今晚再干原创 2021-01-18 01:23:47 · 600 阅读 · 2 评论 -
Shior权限
一、概述1、什么是权限管理?答: 实现对用户访问系统的控制,用户只能访问自己被授权的资源。只要有用户名和密码的系统,权限管理都会出现。举个例子: 答:给张三赋予 “人力资源经理”角色,该角色就具有“查询员工”,“添加员工”,“修改员工”,“删除员工”的权限。此时张三进入系统后,就有这些操作权限。2 、shiro概述答:Apache Shiro是Java的一个安全框架强大、小、...原创 2019-08-19 12:13:22 · 1154 阅读 · 1 评论 -
Shell脚本——数据库备份mysqldump
参考:数据库备份shell备份数据库需求一:每晚两点备份数据库#!/usr/bin/bash #备份保存目录buckup_dir="/data/backup/"#时间date=`date +%F` /usr/local/mysql/bin/mysqldump -u用户名 -p密码 数据库名.表名 > $buckup_dir$date.sql #任务调度 crontab -e0 2 * * * /usr/mysqldump.sh 需求二:只保留前七天的备份量#!/u原创 2021-03-28 15:03:48 · 308 阅读 · 0 评论 -
Shell脚本——使用脚本启动/停止SpringBoot项目
参考:https://blog.csdn.net/xiaoyao2246/article/details/93649393文件夹中有这四个文件步 骤 如 下 :1、编写启动脚本 start.sh#!/bin/bashnohup java -jar finance-0.0.1-SNAPSHOT.jar nohub.out 2>&1 &这个脚本,可以根据配置文件的存放位置,进行定制。参考:https://blog.csdn.net/qq_38737586/arti原创 2021-03-28 14:50:26 · 351 阅读 · 1 评论 -
Linux如何关闭某个占用端口的进程
1)查找被占用的端口:netstat -tln | grep 8000tcp 0 0 192.168.2.106:8000 0.0.0.0:* LISTEN 2)查看被占用端口的PID:sudo lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnginx 850 root 6u IPv4 15078 0t原创 2021-02-21 19:26:17 · 663 阅读 · 0 评论 -
springmvc如何进行json格式转换及 json化日期格式
参考:https://zhuanlan.zhihu.com/p/601703761.概述如何在Spring Boot应用程序中格式化JSON日期字段。 我们将探讨使用Jackson格式化日期的各种方法,Jackson格式化 被Spring Boot用作默认的JSON处理器。一般情况下的实体类型 和 数据库类型为:实体类类型为: private Date createTime = new Date(); private Date updateTime = new Date();对应数据库类型原创 2021-03-20 19:48:26 · 1502 阅读 · 6 评论 -
为什么要分布式 id ?
参照:分布式id生成方案总结一、为什么要分布式 id ?ID是数据的唯一标识,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,传统的做法是利用UUID和数据库的自增ID,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是 但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个单独的机制来负责生成唯一ID,生成出来的原创 2021-03-04 23:49:17 · 1630 阅读 · 1 评论 -
实战——Spring中提供的数据库操作API
一、SpringJdbcTemplate实操演示/** * * 基础jdbc操作类,提供基于标准sql的数据库操作方法 * */@Componentpublic class JdbcOperator implements InitializingBean { public Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private DataSource dataSource;原创 2021-02-04 16:26:11 · 204 阅读 · 0 评论 -
API 接口防刷
refer:https://www.cnblogs.com/rstyro/articles/10715652.htmlAPI 接口防刷顾名思义,想让某个接口某个人在某段时间内只能请求N次。在项目中比较常见的问题也有,那就是连点按钮导致请求多次,以前在web端有表单重复提交,可以通过token 来解决。除了上面的方法外,前后端配合的方法。现在全部由后端来控制。文章目录API 接口防刷一、API 接口防刷1 原理2 代码实现:提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断原创 2021-02-04 09:48:51 · 1011 阅读 · 1 评论 -
(六)6.1 SpringBoot文件上传和下载
参考:https://my.oschina.net/u/3555122/blog/3168604文件上传1.准备上传页面<form action="路径...." method="post" enctype="multipart/form-data"> <input type="file" name="aa"> <input type="submit" value="上传"></form><!-- 1. 表单原创 2021-01-13 11:32:52 · 152 阅读 · 0 评论 -
(五)5.1 SpringBoot 中使用Aop
参考:https://my.oschina.net/u/3555122/blog/3170912前言在Spring中,不管是学习还是面试,有两个点是永远绕不过去的,一个是IOC,另一个就是Aop,Spring中使用Aop是非常简单的,可以通过xml和注解两种方式写出aop的代码,那么在SpringBoot中有什么变化吗?在SpringBoot中使用aop实际上没有太多的变化,关于SpringBoot实际上就是对Spring和SpringMVC的进一步封装,因此在 SpringBoot 中同样支持Sp原创 2021-01-12 16:59:36 · 220 阅读 · 0 评论 -
Emoji字符检查与替换
参考:转载于:https://www.cnblogs.com/permanent2012moira/p/5108677.html当文本包含Emoji字符的时候,存储到数据库或读取的时候需要进行编码和解码(如UTF_8),否则MySQL的存储可能有异常。当有的文本不允许输入Emoji字符,或者显示时需要将Emoji替换为指定字符的时候可以用下面的几个工具方法。 /** * 将字符串中的Emoji表情替换为* * @param source * @return */原创 2020-12-14 10:37:21 · 788 阅读 · 0 评论 -
Maven项目中pom.xml文件内的标签详解
首先看dependecy 标签中的内容 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true, 依赖不会传递, 该项目依赖devtools; 之后依赖原创 2020-12-13 22:48:33 · 927 阅读 · 0 评论 -
使用SpringJdbcTemplate进行批量的更新/新增(高效率)
refer:几种批量删除分析比较:https://blog.csdn.net/fbysss/article/details/4152703?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.原创 2020-12-03 23:42:10 · 16761 阅读 · 1 评论 -
easyExcel
参考url:https://blog.sunxiaowei.net/java/43.htmlhttps://www.yuque.com/easyexcel/doc/easyexcelhttps://www.bilibili.com/video/BV1C7411275q?t=58&p=2EasyExcel一、初识EasyExcel1. Apache POI先说POI,有过报表导入导出经验的同学,应该听过或者使用。Apache POI是Apache软件基金会的开源函式库,提供跨平台的转载 2020-11-22 18:15:43 · 1257 阅读 · 0 评论 -
Java集合优雅的判空/非空
一、乱象一、Java集合优雅的判空/非空来自 apache 的集合处理工具包 <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> &.原创 2020-11-19 21:44:06 · 1845 阅读 · 5 评论 -
Java8——Stream流操作
参考:https://www.cnblogs.com/niujifei/p/11614861.html一、Stream流是什么原创 2020-11-18 00:41:34 · 576 阅读 · 0 评论 -
(四)Spring Boot配合Hibernate Validator参数校验
使用数据校验,保证数据的正确性步骤:1、在需要校验的实体类上 添加 @Validate 注解:2、在需要校验的属性上 添加对应的注解:如:@Email (message=" ") message:数据格式不正确时,就会抛出异常,message是抛出的提示信息。参考:...原创 2020-11-16 23:50:54 · 284 阅读 · 0 评论 -
idea热部署
2个步骤:a、在 pom.xml 中添加如下配置<!--热部署配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency&...原创 2020-12-13 22:34:48 · 409 阅读 · 0 评论