- 博客(247)
- 资源 (27)
- 收藏
- 关注
原创 Spring Data Jpa 使用EntityManager执行SQL操作数据
此外,建议在Spring Boot应用程序中使用Spring Data JPA,因为它提供了更高级、更安全的查询方式,并且更符合Spring的习惯。在这个例子中,我们使用了createNativeQuery方法来创建原生SQL查询,并通过setParameter方法设置参数。请注意,这里使用的是原生SQL,因此表名和字段名需要与数据库中的实际情况一致。在实际开发中,为了防止SQL注入等安全问题,最好使用参数化查询,就像上面的例子一样使用setParameter方法。
2024-01-05 14:28:28 1916
原创 Spring Data Jpa中的@PersistenceContext是什么?
选择使用哪个取决于项目的具体需求。如果你主要使用JPA进行数据库访问,而且愿意保持对JPA的强依赖,那么使用。如果你更倾向于使用Spring的依赖注入机制,并且希望注入其他Spring托管的组件,那么使用。都是用于依赖注入的注解,但它们的使用场景和依赖关系略有不同。在实际项目中,两者都有广泛的应用。
2024-01-05 14:17:34 1898
原创 一篇文章搞定Spring Cache
使用@Cacheable@CachePut注解时,可以通过condition属性设置缓存失效的条件。例如,只有满足某个条件时才进行缓存:// 方法体逻辑使用unless属性设置条件,如果满足条件,则不会缓存结果。与condition相反,unless表达式的值为true时,不缓存:// 方法体逻辑如果你想使用除默认的之外的缓存管理器,可以自定义@Bean// 自定义的缓存管理器通过自定义缓存注解,你可以在方法上使用自定义的缓存注解,提供更复杂的缓存逻辑。例如:// 方法体逻辑其中。
2023-11-29 14:55:12 264
原创 Git常用规范
需要注意的是,使用message模板可以帮助我们规范化提交信息的格式和内容,但并不是所有的提交都需要按照模板来写。在实际开发中,我们应该根据实际情况灵活选择合适的提交信息,并确保提交信息的内容准确、清晰、简洁。总之,代码提交message规范的目的是为了让代码提交记录更加清晰明了,方便团队成员查看和理解提交的内容和目的,从而提高团队协作的效率和质量。其中,、、 和 # 是必填项, 可以省略, 不宜过长,最好不超过50个字符, 和 # 建议使用关键字和Issue编号的形式进行填写。
2023-11-15 09:53:21 3031
原创 Spring Boot 拦截器 HandlerInterceptor的使用以及WebMvcConfigurer简单介绍
当我们使用Spring Boot构建Web应用程序时,是一个重要的组件,用于拦截请求的处理过程。接口定义了在请求处理的不同阶段执行的方法,允许我们在请求到达处理程序之前和之后执行自定义逻辑。
2023-11-14 16:58:52 5593 2
原创 spring boot validation使用
是 Spring Boot 中用于支持数据验证的模块。它建立在 Java Validation API(JSR-380)之上,提供了一种方便的方式来验证应用程序中的数据。以下是使用。
2023-11-13 17:01:08 3276
原创 使用 ThreadPoolExecutor 管理线程池
ThreadPoolExecutor 是 Java 多线程编程中非常重要的工具,能够高效地管理线程的生命周期,提高程序性能和资源利用率。合理配置线程池参数,选择适当的拒绝策略,是保证系统稳定性和性能的关键。
2023-10-10 15:46:16 169
原创 解决表情包乱码
但表情符号包含许多非ASCII字符,不能直接在文本中传输,所以通常会转换为HTML实体编码进行传输和存储,如常见的微笑表情“:😊:”会编码为“😊”。但是后续读取网络返回的文本内容时,如果不对这些HTML实体进行解码,就会直接输出类似“😊”的字符串,导致表情显示为乱码的问题。但我们在拿到文本内容后,需要进行解码才能显示原始的表情符号。要解决这个问题,我们需要在获得文本内容后,对其中的HTML实体编码进行解码,转换回对应的Unicode字符,才能正确显示表情。
2023-09-07 11:30:07 954 1
原创 git中的cherry-pick和merge有些区别以及cherry-pick怎么用
可以看到,我们只将feature分支上的F这个commit应用到了dev分支,而不是合并整个feature分支。这就是cherry-pick的一个简单用法,它可以灵活地挑选修改并应用到当前分支。
2023-09-04 10:05:46 4937
原创 org.springframework.util.StopWatch使用说明
StopWatch是一个简单实用的秒表工具类,可以用来评估代码块的执行时间和性能。然后可以通过getTaskTimeMillis(String taskName)获取指定任务的执行时间。这需要先调用setKeepTaskList(true)保留任务清单。
2023-05-10 18:03:03 1342 1
原创 JAVA导出CSV文件
Excel 在读取 csv 的时候是通过读取文件头上的 bom 来识别编码的,这导致如果我们生成 csv 文件的平台输出无 bom 头编码的 csv 文件(例如 utf-8 ,在标准中默认是可以没有 bom 头的),Excel 只能自动按照默认编码读取,不一致就会出现乱码问题了。写入的时候加上: out.write(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF });使用CSVWriter。
2022-11-16 10:11:24 7831 1
原创 Springboot踩坑日记——spring data jap 使用@Query接收Map<String,Integer>结果集时取值时报错
【代码】Springboot踩坑日记——spring data jap 使用@Query接收Map结果集时取值时报错。
2022-11-03 16:53:08 742
原创 docker安装Nginx
安装Nginx二、初始化宿主机Nginx文件1、 运行nginx镜像2、本地创建文件目录3、拷贝nginx容器对应的文件默认配置3、停止并删除nginx容器三、启动nginx镜像四、验证Nginx访问链接: http://127.0.0.1![image.png](https://img-blog.csdnimg.cn/img_convert/703534126db075fa2d2f9f5da92b503d.png#clientId=uefbdd9bf-5dcc-4&crop=
2022-07-03 16:37:08 767
原创 springboot踩坑日记-java: User-specified option “-proc:none“ is ignored for “xxx-xxx-common“. This compil
环境:java: 11.0.15.1maven: 3.6.3idea: 2021.1项目启动报错Executing pre-compile tasks...Loading Ant configuration...Running Ant tasks...Running 'before' tasksChecking sourcesCopying resources... [xxx-xxx-loyalty]Copying resources... [xxx-xxx-core]Copyi
2022-05-18 09:30:55 1651
原创 springboot踩坑日记——Feign传递MultipartFile
创建配置类package com.thecarevoice.frontend.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.context.annot
2022-05-12 14:24:54 1037
原创 springboot踩坑日记——springboot整合jpa报错
错误信息2022-04-26 08:23:43.656 ERROR 18709 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationRepository' defined in com.
2022-04-26 09:09:01 3000
原创 使用javaparser替换项目中的代码
package com.d1m.common.logs;import cn.hutool.core.io.FileUtil;import com.github.javaparser.ParseResult;import com.github.javaparser.ast.CompilationUnit;import com.github.javaparser.ast.ImportDeclaration;import com.github.javaparser.ast.Node;import c
2021-07-15 23:08:47 1256
原创 mysql用户&权限总结
mysql version: 5.6.28-cdb2016-log用户权限管理主要有以下作用:可以限制用户访问哪些库、哪些表可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作可以限制用户登录的IP或域名可以限制用户自己的权限是否可以授权给别的用户mysql.user表CREATE TABLE `user` ( `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '', `User` c.
2021-07-03 21:41:00 491 2
原创 Postman动态获取值(动态设置全局变量)
设置全局变量Environment: 环境是一组变量,它允许您切换请求的上下文。优先使用,可以切换环境Globals: 全局变量是工作空间中始终可用的一组变量。不受切换环境影响![image.png](https://img-blog.csdnimg.cn/img_convert/311389e7f88d5652b1f402b442e9e220.png#align=left&display=inline&height=291&margin=[object Object]&
2021-01-08 16:44:19 4673 2
原创 正则表达式学习笔记
正则表达式学习文档元字符构造匹配^匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置$匹配行或字符串的结尾\b匹配一个位置.任何字符(与行结束符可能匹配也可能不匹配)\d数字:[0-9]\D非数字: [^0-9]\s空白字符:[ \t\n\x0B\f\r]\S非空白字符:[^\s]\w匹配字母或数字或下划线\W非单词字符:[^\w]\b : 不会消耗任何字符只匹配一个位置,常用于匹配单词边界 ;
2020-12-02 14:25:23 389
原创 nginx安装SSL证书(配置https)
nginx安装SSL证书默认已经安装好了nginx准备SSL证书阿里云,腾讯云有免费的SSL证书当然你也能用收费的配置创建目录mkdir ssl #证书目录mkdir vhost #配置目录修改nginx.conf配置 http{ #在http模块里添加: include vhost/*.conf;#匹配vhost目录下的所有.conf文件}在vhost目录添加配置配置名一般为 域名.confserver { listen 443 ssl;
2020-11-24 15:39:56 1416
转载 server.c:5166:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
1、错误示例server.c:5151:94: error: ‘struct redisServer’ has no member named ‘unixsocket’serverLog(LL_NOTICE,“The server is now ready to accept connections at %s”, server.unixsocket);^server.c:5152:19: error: ‘struct redisServer’ has no member named ‘super
2020-09-14 10:22:40 3875
转载 springboot jackson配置
springboot 针对jackson是自动化配置的,如果需要修改,有两种方式:通过application.yml配置属性说明:##spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名spring.jackson.deserialization是否开启Jackson的反序列化spring.jackson.generator是否开启json的generators.spring.jackson.joda-date
2020-09-03 09:31:17 354
原创 java使用AOP打印日志
一、创建一个自定义注解:package com.yan.demo.core.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@T
2020-08-15 16:00:45 1502
转载 java获取请求IP
public static String getIpAddress(HttpServletRequest request) { String ipAddress = null; try { ipAddress = request.getHeader("x-forwarded-for"); if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIg.
2020-07-22 13:30:54 1301 1
原创 Nginx多配置文件
应用场景:主配置文件nginx.conf中指定包含其他扩展配置文件,从而简化nginx主配置文件,实现多个站点功能,方便配置文件的维护在nginx.conf中的http模块里添加include指令:include vhost/*.conf;#匹配vhost目录下的所有.conf文件在 vhost 文件夹中创建 test.com.conf 文件:server { listen 8000; server_name test1.com; location
2020-07-09 14:11:30 1242
转载 GitHub更新fork的代码
1、在本地装好github客户端,或者git客户端2、clone 自己的fork分支到本地,可以直接使用github客户端,clone到本地,如果使用命令行,命令为: git clone https://github.com/liuyanqing1023/WxJava.git3、增加源分支地址到你项目远程分支列表中(此处是关键),先得将原来的仓库指定为upstream,命令为: git remote add upstream https://github.com/Wechat-Group/
2020-07-01 19:13:22 493
原创 Linux,centos环境java启动关闭重启shell脚本
#!/usr/bin/env bashINPUT=$2FILE_PATH=`readlink -f ${INPUT}`SERVICE=${INPUT##*/}SERVICE_NAME=${SERVICE%.*}DEPLOY_DIR=`pwd`JVM_OPTS="-server -Xms64m -Xmx128m"if [[ "$1" = "" ]];then echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|res
2020-06-23 14:34:36 839
原创 git常用命令
名词master: 默认开发分支origin: 默认远程版本库Index / Stage:暂存区Workspace:工作区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库 git init # 新建一个目录,将其初始化为Git代码库 git init [project-name] # 下载一个项目和它的整个代码历史 git clone [url] git clone [url] [
2020-06-17 16:55:29 397
原创 亲手实现一个springboot默认配置&起步加载
Spring Boot 是一个用于快速开发 Spring 应用程序的框架,提供了很多默认配置和起步加载功能,这使得 Spring Boot 应用程序能够更快速地启动和运行。起步加载是指,Spring Boot 会根据应用程序的依赖关系自动加载所需的类库和配置,从而简化了应用程序的部署和管理。开发者只需要在项目中添加相应的依赖项,Spring Boot 就会自动处理它们之间的依赖关系,并加载所需的类库和配置。起步加载还可以帮助开发者快速地搭建基于 Spring Boot 的应用程序。
2020-06-10 17:21:21 1035
原创 Docker(1)——CentOS7.x环境下安装Docker以及常用命令
在centos中安装dockerDocker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本的CentOS中是不支持更新最新的一些补丁包的。我这里将Docker安装到阿里云CentOS上。注意:这里建议安装在CentOS7.x以上的版本,在CentOS6.x的版本中,安装前需要安装其他很多的环境而且Docker很多补丁不支持更新。yum 包更新到最新sudo yum update[外链图片转存
2020-05-10 20:30:29 333
原创 CentOS7 64位安装mysql教程
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!这里依旧以mysql为例进行展示1、先检查系统是否装有mysqlrpm -qa | grep mysql这里返回空值,说明没有安装这里执行安装命令是无效的,因为centos-7默认是Mariadb,所以执行以下命令只是更新Mariadb数据库yum install mysql删除可用yum...
2020-04-13 13:47:36 2209
原创 springboot实现AOP切面编程
概述AOP(Aspect Oriented Programming) 即面向切面编程。面向切面是面向对象中的一种方式而已。在代码执行过程中,动态嵌入其他代码,叫做面向切面编程(将交叉业务逻辑封装成成切面,利用AOP功能将切面织入到主业务逻辑———与主业务逻辑无关的代码,使用场景如:安全检查,事物,日志等 。AOP是一种方式,实现AOP的库有名的有两个AspectJ和spring AOP.核心...
2020-04-02 15:51:29 5798 1
原创 什么是缓存穿透、缓存击穿、缓存雪崩以及怎么解决
缓存穿透:描述一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去数据库查询。一些恶意的请求会故意大量查询不存在的key,就会对数据库造成很大的压力。这就叫做缓存穿透。 简单的说就是故意避开缓存去数据库查询数据。解决对查询结果为空的情况也进行缓存,缓存时间设置短一点。缓存击穿描述缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),...
2020-03-05 15:01:56 1593
原创 如何处理消息队列消费过程中的重复消息
在 MQTT 协议中,给出了三种传递消息时能够提供的服务质量标准,这三种服务质量从低到高依次是:At most once: 至多一次。消息在传递时,最多会被送达一次。换一个说法就是,没什么消息可靠性保证,允许丢消息。一般都是一些对消息可靠性要求不太高的监控场景使用,比如每分钟上报一次机房温度数据,可以接受数据少量丢失。At least once: 至少一次。消息在传递时,至少会被送达一次。也...
2020-02-25 17:29:30 1092
原创 消息队列如何保证消息不丢失
检测消息丢失布式链路追踪系统如果是 IT 基础设施比较完善的公司,一般都有分布式链路追踪系统,使用类似的追踪系统可以很方便地追踪每一条消息。利用消息队列的有序性来验证Producer端,我们给每个发出的消息附加一个连续递增的序号,然后在Consumer端来检查这个序号的连续性,连续则没有丢失,不连续则丢失,还能知道丢的是哪条消息。大多数消息队列的客户端都支持拦截器机制,你可以利用这...
2020-02-25 17:11:24 906
Jenkins持续集成与容器管理.pdf
2019-06-24
rabbitMQ教程
2019-01-23
RabbitMQ使用文档.PDF
2018-12-20
深入浅出的学习MVC
2018-12-11
JVM优化|java虚拟机优化
2018-12-04
HttpClient 4.3教程.pdf
2017-09-20
fastDFS笔记
2017-09-18
FastDFS 架构剖析及配置优化
2017-09-18
pagehelper分页插件
2017-09-17
maven3.3.9
2017-09-17
pom约束文件
2017-09-17
dubbo-admin-2.5.4.war
2017-09-17
dubbo监控中心(dubbo-admin)使用与安装
2017-09-17
spring-boot-cli-1.4.0.BUILD-SNAPSHOT-bin.zip
2017-09-14
ActiveMQ_in_Action_中文.pdf
2017-09-11
Spring技术内幕:深入解析SPRING架构与设计原理
2017-09-11
[免费]Spring MVC学习指南(高清)
2017-09-11
深入理解Java虚拟机:JVM高级特性与最佳实践
2017-08-01
Spring-boot参考指南
2017-08-01
快乐的Linux命令行.pdf
2017-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人