- 博客(189)
- 收藏
- 关注
转载 ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
想给 FileStreamResult 找一个恰当的例子是不太容易的,毕竟 Http Response 中已经包含了一个输出流,如果要动态生成文件的话,可以直接向这个输出流中写入数据,效率还高。当然,我们不会在 Controller 中直接向 Response 的 OutputStream 写入数据,这样做是不符合MVC的,我们应该把这个操作封装成一个 ActionResult。在 System.Web.Mvc.dll 中,它有如上三个子类,分别以不同的方式向客户端发送文件。),前者在内部调用后者。
2024-04-08 17:27:53
351
转载 Redis进阶——发布订阅详解
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 的subscribe命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。☛ 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:☛ 当有新消息通过publish。
2024-03-27 10:27:59
3127
转载 C#基础:using语句的用法
using语句为实现了IDisposable的类型对象调用Dispose方法,using语句能够保证使用的对象的Dispose方法在using语句块结束时被调用,无论是否有异常被抛出。C#编译器在编译时自动为using语句加上try/finally块,所以using的本质和异常捕获语句一样,但是语法更为简洁。所有using使用的对象都应该在using语句开始后再初始化,以保证所有的对象都能够被Dispose。
2024-03-26 14:26:15
608
转载 浅析权限管理模型(DAC, MAC, RBAC, ABAC)
了解 DAC、MAC、ABAC 的相关概念;熟悉 RBAC 整个模型族,尤其是作为基础地 RBAC0;思考如何使用 RBAC 设计一个简易的权限管理系统。原文地址:https://juejin.cn/post/6844904056876433416#heading-6。
2024-01-12 11:17:28
618
原创 Window10 下同时安装 JDK8 和 JDK11
的配置在 Oracle 默认的路径配置的最前边 或者将 默认的路径和配置删除掉,否则会导致切换的失败。这是在安装 JDK 时 Oracle 默认的位置,为了实现可以方便的切换JDK的版本,就需要保证。中的第二行,还有一个配置。
2024-01-03 11:50:28
1054
转载 SQL Server中的Merge关键字
MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。首先是更加短小精悍的语句,在SQL Server 2008之前没有Merge的时代,基于源表对目标表进行操作需要分别写好几条Insert,Update,Delete。但仅仅是MATCHED这种限制条件往往不能满足实际需求,我们可以在图7那个语句的基础上加上AND附加上额外的限制条件,如图9所示。最终目标表的结果如图4所示。
2023-12-20 16:22:25
147
原创 Java连接SQL Server报 PKIX path building failed 问题
【代码】Java连接SQL Server报 PKIX path building failed 问题。
2023-12-06 11:48:53
698
原创 @Transient 和 @JsonIgnore在Data序列化及存储中的区别
由上面的结果可以看出,如果实体中一个字段不想出现在查询结果中时,但是要在DB中存储时,可以使用。实验二: 只在字段上添加@JsonIgnore注解。实验一: 只在字段上添加@Transient注解。如果实体中一个字段不想存储到DB时可以使用。中的一个注解,@JsonIgnore是。@Transient是。
2023-04-24 16:10:00
994
原创 使用Docker搭建RabbitMQ集群并用HAProxy实现负载均衡
以上的操作完成了RabbitMQ集群的搭建,但是在SpringBoot中对于集群的访问时,是按照配置的顺序执行的,只有第一个建立连接的节点挂掉以后才会去与第二个建立连接。集群中各节点有相同的队列结构,但消息只会存在于集群中的一个节点,对于消费者来说,若消息进入A节点的Queue中,当从B节点拉取时,RabbitMQ会将消息从A中取出,并经过B发送给消费者。镜像集群模式可以保证集群只要不全部宕机,数据就不会丢失,当相对于性能来说,镜像集群模式会比普通集群模式多出消耗数据的传输。
2023-04-06 10:40:50
772
原创 【Eclipse】The import xxxx cannot be resolved 问题解决
The import xx cannot be resolved 问题解决
2023-02-28 17:00:09
759
原创 RedisTemplate中的Execute方法和ExecutePiplined方法比较
RedisTemplate中execute方法和executePiplined方法的使用比较
2023-02-09 15:52:48
1347
原创 FreeMarker中使用Shiro标签
在FreeMarker中使用Shiro标签时,需要以下几个步骤:引入依赖的jar文件引入jar文件:shiro-freemarker-tags,可以直接从shiro-freemarker-tags中下载依赖文件然后引入到项目中即可。添加配置类配置类文件如下所示:@Componentpublic class ShiroTagFreeMarkerConfigurer implements InitializingBean { @Autowired private Configuration
2022-01-17 17:00:20
399
转载 对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
实验环境: mysql5.6 存储引擎:innoDB 我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突) 乐观锁 乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。 通常实现是这样的:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是
2021-10-28 11:33:05
222
原创 RestTemplate异常信息(4xx和5xx)处理
在日常开发中经常会用到RestTemplate这一客户端进行访问其他的接口时,经常会遇到异常处理的问题,关于RestTemplate的异常处理,主要会用到一个接口org.springframework.web.client.ResponseErrorHandler,源码如下:public interface ResponseErrorHandler { // 判断是否有异常 boolean hasError(ClientHttpResponse response) throws IOExceptio
2021-10-18 18:19:34
1058
原创 SpringBoot项目启动时设置系统的时区为UTC
设置的方式相对比较简单,只需在项目main所在类中添加如下代码即可:@PostConstructvoid setDefaultTimezone() { TimeZone.setDefault(TimeZone.getTimeZone("UTC"));}
2021-10-14 15:45:47
1356
转载 redis事件监听的应用场景与案例实战
这个问题解决的方案就有多种了,我们可以通过MQ来进行,现在大多的MQ都带有死信队列的机制,我们可以通过这个机制来完成,其次也可以通过quartz的轮询方式的完成,选择合适解决方案应对当前的需求即可。由于Keyspace Notifications是在Redis 2.8.0之后的版本才提供的功能,所以我们的Redis版本需要再2.8.0之上,否则无法使用Redis时间监听,在笔者写这篇文章之时,Redis的最新正式版本已经为。一个电商商家后台,商家可以设置多个商品的价格并指定价格的生效时间。
2021-09-29 16:15:47
2512
转载 数字格式化输出NumberFormat
--------------------------------------------------------------- java.text.NumberFormat类有三个方法可以产生下列数据的标准格式化器: 数字 货币 百分数 --------------------------------------------------------------- 创建格式化器(默认地区Local...
2021-08-03 17:10:54
908
原创 Eclipse中手动安装Lombok插件时遇到的问题
日常在使用Eclipse进行开发时,都会使用到lombok插件,关于lombok插件的安装有几种方法,具体的可以参考lombok的官网,这里主要介绍手动安装该插件时遇到的问题。手动安装lombok的过程如下:首先在lombok的官网下载插件的jar包;然后将该jar包拷贝到Eclipse的安装目录下,与eclipse.ini在同一级目录中;最后在 eclipse.ini中添加如下的内容:-Xbootclasspath/a:lombok.jar-javaagent:lombok.jar# 上
2021-07-30 10:33:18
442
原创 解决SpringBoot接口返回Date类型及从数据库获取时间字段数据格式及时区问题
问题描述在API返回数据中含有Date类型的数据,这些数据在数据库中存储的格式为北京时间 yyyy-MM-dd HH:mm:ss格式,API的方法中获取到的时间也正常,但是在接口返回的数据中,时间变为了标准时间,格式也发生了变化,如:2021-07-28T06:30:10.378+00:00。原因分析之所以会出现这样的情况,是因为Spring的消息转化机制引起的,对于返回值content-type类型为application/json格式的数据,默认使用jackson来进行json序列化,使用的消息转
2021-07-28 15:03:03
4016
转载 SpringMVC源码剖析——消息转换器HttpMessageConverter
摘要 SpringMVC使用消息转换器实现请求报文和对象、对象和响应报文之间的自动转换 概述 在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换,底层这种灵活的消息转换机制,就是Spring3.x中新引入的HttpMessageConverter即消息转换器机制。 Http请求的抽象 还是回到请求-响应,也就是...
2021-07-28 14:15:07
496
原创 Eclipse执行maven update以后JRE变为1.5
出现这一问题的原因是因为:Compiler Plugin 用于编译项目的源代码。从 3.0 开始,默认编译器是 javax.tools.JavaCompiler(如果您使用的是 java 1.6)并且用于编译 Java 源代码。如果要使用javac强制插件,则必须配置插件选项forceJavacCompilerUse。以上说明来自官方文档:Apache Maven 编译器插件解决办法官网已经给出:设置JRE 版本方法一:在POM文件中添加如下配置:<project> [...
2021-07-08 18:24:14
584
原创 使用Chrome开发者工具network中的timing来调优
在文章chrome浏览器F12 Network中Timing参数含义中介绍了network中的timing各属性的含义,一般API的请求中比较耗时的阶段在content download阶段,在实际开发中,如果页面上刷新好久还没有数据,可以看一下是不是时间都消耗在这个阶段;也可以等请求结束可以根据请求中的属性来判断是不是因为数据太大导致下载比较慢。如下图,可以看到请求中大部分的时间都消耗在了content download阶段:接下里看一下API请求后的参数情况:正如图中所示,118KB t.
2021-06-21 15:23:06
2006
转载 chrome浏览器F12 Network中Timing参数含义
前言 Chrome浏览器开发者工具Network窗口下,Timing中显示资源在整个请求生命周期过程中各部分花费的时间。 Timing各参数截图如下: 参数具体含义: Queueing:请求文件顺序的排序。浏览器是有线程限制的,发请求也不能所有的请求同时发送,会将请求加入队列中(Chrome的最大并发连接数是6)。此参数表示从添加到待处理队列,到实际开始处理的时间间隔标示。 Stalled(阻塞):浏览器得到要发出这个请求的指令,到请求可以发出的等待时间,一般是代理协商、以及等待可复用
2021-06-21 14:52:45
4420
原创 Maven中的scope总结
Maven中的scope主要有以下6种,接下来分别介绍下这几种scope:compile不声明scope元素的情况下的默认值;compile表示被依赖包需要参与当前项目的编译,包括后续的测试,运行周期也参与其中,是一个比较强的依赖;打包的时候通常需要包含进去。providedprovided 类型的scope只会在项目的编译、测试阶段起作用;可以认为在目标容器中已经提供了这个依赖,无需在提供,但是在编写代码或者编译时可能会用到这个依赖;依赖不会被打入到项目jar包中。runtimeruntim
2021-06-19 11:42:03
34367
转载 清理本地Maven仓库
1.清理targetmvn clean -U2.清理该项目依赖的本地仓库中的maven包mvn dependency:purge-local-repository这个命令会清理pom.xml中的包,并重新下载,但是并不清理不在pom.xml中的依赖包。下面的扩展:mvn dependency:purge-local-repository -DreResolve=false reResolve是否重新解析依赖关系mvn dependency:purge-local-repository
2021-06-15 09:41:50
891
原创 Apache Tika入门
文章目录1、基本介绍2、Tika使用2.1、解析器接口(The Parser interface)2.1.1、自定义Parser类2.2、检测器接口2.3、Tika配置1、基本介绍Apache Tika(文本分析工具包)能够检测并提取来自上千种不同文件类型(如PPT、XLS和PDF)的元数据和文本;所有这些文件类型都可以通过一个接口进行解析,这使得Tika在搜索引擎索引、内容分析、翻译等方面非常有用。2、Tika使用介绍下Tika在Maven项目中的使用,首先介绍下Tika相关的两个Maven依赖:
2021-06-03 15:21:25
6084
转载 springboot配置文件与系统环境变量中key同名问题
前言在朋友的项目有个自定义配置文件user.yml,其内容如下user: userId: 1 name: 张三 email: zhangsan@qq.com其映射实体内容为如下@Data@AllArgsConstructor@NoArgsConstructor@Builder@PropertySource(value = "user.yml",encoding = "utf-8",factory = CustomYmlPropertySour...
2021-05-27 14:15:25
1653
原创 SpringBoot文件上传配置
在SpringBoot框架下进行文件上传时,如果文件较大,则需要进行相应的配置,具体配置如下:spring: servlet: multipart: enabled: true # Whether to enable support of multipart uploads.默认为:true file-size-threshold: 100KB # 达到多少以后写入数据到磁盘的阈值,单位为“MB”或者“KB” max-file-size: 2048MB
2021-05-24 17:58:32
758
原创 Spring国内脚手架配置
官网地址:https://start.aliyun.com/bootstrap.html?spm=a2ck6.17690074.0.0.503c2e7dULJM75在Eclipse中的使用,打开Window——>Preferences,然后在如下所示的界面中配置上https://start.aliyun.com/,然后点击Apply即可。
2021-05-21 11:28:39
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人