
后端
SomeOtherTime
这个作者很懒,什么都没留下…
展开
-
文件断点续传(视频播放,大文件下载)
浏览器播放mp4视频时,会首先传Range消息头,检测到206状态码,和Content-Range,Accept-Ranges 会自动请求余下数据。后端需要在文件任意偏移量取数据。客户端每次请求取大文件部分数据。原创 2024-12-13 16:44:27 · 349 阅读 · 0 评论 -
springboot后端当成反向代理服务器
思路是创建一个servlet,解析路径映射,在其中实现请求消息体,消息头的转发。响应消息体消息头的转发。原创 2024-08-15 15:11:58 · 615 阅读 · 0 评论 -
对SpringBoot配置文件配置项加密原理
参考。原创 2024-05-28 16:48:17 · 356 阅读 · 0 评论 -
记录一次cas单点登录的集成
主要思路:浏览器访问CAS服务器登录,拿到凭证给后端,后端用此凭证到CAS服务器验证登录并拿到用户信息,之后基于该凭证维持用户的登录状态。validation.AbstractTicket类是后端 通过前端带过来的ticket请求cas服务器,认证有效性。2.后端向浏览器发送重定向信息到cas服务端(参数带跳转CAS服务器的地址)4.CAS服务器向浏览器发送重定向信息到后端的地址(带ticket)第一次访问后端认证地址没有ticket,重定地址到登录cas服务器。原创 2024-05-22 17:46:32 · 562 阅读 · 0 评论 -
记一次http访问超时服务器端调试
查看jvm情况可知服务器创建了很多http-nio-9993-exec-线程,推测存在太多为关闭的连接,超出了连接数上线。这些线程都是空闲(WAITING (parking))状态,说明客户端未正常关闭,并且服务器设置了过长的超时时间。处理过程:telnet端口能连上,服务端程序也不存在处理时间过长的情况。问题:http访问服务器时没有返回,没有超时,一直在阻塞。解决方法:修改了保活超时时间。原创 2024-04-12 17:28:09 · 653 阅读 · 1 评论 -
mybatis-plus多数据源配置
这里结合了springboot的多数据源配置,主要是手动创建数据源,再手动设置配置一些配置参数。原创 2022-12-02 11:36:55 · 8207 阅读 · 3 评论 -
Springboot整合Redis
1.springboot 2整合redis参考:1.0 Spring boot整合Redis实现发布订阅(超详细)_BBQ__XB的博客-优快云博客_springboot 发布订阅1.1 连不上redis,改redis配置Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: 解决办法_浪里小菜鸟的博客-优快云博客1.2 Redis工具类 参考redis知识整理_安迪爸爸的博客-C原创 2022-07-01 16:37:40 · 463 阅读 · 0 评论 -
基于springboot一个简单的注解权限验证方式
主要思想是基于环绕aop得到 controller方法上的注解权限。再与前面拦截器得到的用户权限进行比较。拦截器与其配置文件:参考文献:1.切面匹配表达式。https://www.cnblogs.com/songshuiyang/p/7857515.html2.springboot aop。https://www.cnblogs.com/huanzi-qch/p/9916478.html3.获取注解的属性值https://blog.youkuaiyun.com/HaHa_Sir/artic原创 2020-10-28 11:03:13 · 438 阅读 · 0 评论 -
SpringBoot配置文件及命令行参数
参考https://my.oschina.net/u/3714931/blog/1608944两种等价方式,一种main函数参数,一种虚拟机参数(作用是配置一些环境变量,System.getProperty(“propertyName”)取)。$ java -jar test-0.0.1-SNAPSHOT.jar --testKey=HelloWorldFromCommandLine$ java -DtestKey=HelloWorldFromCommandLine -jar test-0.0原创 2020-09-05 18:31:20 · 2627 阅读 · 1 评论 -
后端的快进读取文件(视频)
参考:https://blog.youkuaiyun.com/qq_39800789/article/details/105472249https://www.cnblogs.com/1995hxt/p/5692050.html关键1.inputStream.skip(),2.解析Range: bytes=40-100请求头这个表示[start,end],即是包含请求头的start及end字节的,所以,下一个请求,应该是上一个请求的[end+1, nextEnd]3.Content-Rang原创 2020-08-03 17:34:59 · 244 阅读 · 0 评论 -
java泛型记录,自定义版本泛型注入
一直对spring中的泛型注入好奇,比如:abstract public class BaseService<T, ID extends Serializable, R extends BaseRepository<T, ID>> { @Autowired protected R baseRepository;}spring具体实现还未知。先猜一下其实现。由于Java泛型的引入,各种场景(虚拟机解析、反射等)下的方法调用都可能对原有的基础产生原创 2020-07-08 16:13:33 · 737 阅读 · 0 评论 -
Mybatis使用记录
代码+配置文件,包含一些postgresql数据库特有语法,和函数。foreach:List<Student> selectList(List<Integer> idList);<!-- in查询所有,不分页 --> <select id="selectList" resultType="Student"> select id,(name_age).name as name,(name_age).age as age,ST原创 2020-07-03 11:03:47 · 195 阅读 · 0 评论 -
根据数据库表名和主键自动生成 springbootJpa的 Dao层和Service层工具类
生成在当前classpath路径下。MYSQL版本。package utils;import java.io.*;import java.net.URL;import java.sql.*;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class Util { private static final String DRIVER = "com.mysql.cj原创 2020-06-28 02:11:41 · 867 阅读 · 1 评论 -
idea自动生成实体类的groovy文件
注意:第一个属性是主键import com.intellij.database.model.DasTableimport com.intellij.database.model.ObjectKindimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtilimport org.hibernate.annotations.DynamicInsertimport org.hibernate.an.原创 2020-06-23 17:48:17 · 1486 阅读 · 0 评论 -
SpringDateJpa动态查询记录
//时间格式2000-07 //SELECT * //FROM `water_monthly_statistics`; //where ((year>2018 and year <2020) or (year=2018 and month>5) or(year=2020 and month<4)) and region_id in(1,2) private Specification<WaterMonthlyStatistics> get.原创 2020-05-27 14:30:16 · 216 阅读 · 0 评论 -
jackson记录 shiro记录
//jackson转泛型化对象private static ObjectMapper objectMapper = new ObjectMapper();ResponseEntity<String> r = objectMapper.readValue(s, new TypeReference<ResponseEntity<String>>() {});原创 2020-05-25 11:57:54 · 155 阅读 · 0 评论 -
springboot的slf4j的配置
springboot的slf4j底层采用logback作日志。简单的配置在yml文件中配就行了。需要更多功能时还要建xml文件进行配置。一般的日志4种级别就足够了:ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息级别排列从严重到不严重。如果配置的级别为INFO,INFO,WARN,ERROR都默认会在控制台打印。一般简单的配置在yml中就行了。logging: fil原创 2020-05-14 10:55:19 · 13639 阅读 · 0 评论 -
一些表单重复提交和并发问题的记录
在数据库添加一条记录时碰到了下面情况。具体经过是,在添加这条数据 时数据库里已经有两条一样的数据了,所以先在前端操作后,失败了3次。在手动删除数据库的重复数据后。再一次添加,数据库就插入了4条相同数据,再重复这流程2biang之后还是如此。因为在多次正常流程测试下是不会发生这种情况的。所以可能前端记录到了开始失败的状态,然后一次发了N次请求。所以从这引申除了2个问题,表单重复提交和并发。这是一张统计表,年份+月份+区域 应该唯一。这导致下次添加任务时持久层会报查询不为一的异常。这张表的插入逻原创 2020-05-13 16:51:46 · 844 阅读 · 2 评论 -
spring data jpa 查询部分字段
spring data jpa原生sql查询,拿实体类对象接会报错。所以用Map接就行了。@Query(value = "SELECT id,title,tag,createtime,updatetime,abs,spec FROM article", countQuery = "SELECT count(*) FROM article", ...原创 2020-02-27 15:49:02 · 1022 阅读 · 0 评论 -
拦截器实现SpringBoot跨域请求
因为springboot的@CrossOrigin注解在拦截器上无效,有时候就不能在拦截器返回给数据前端信息。所以自己实现拦截器实现跨域处理,再在普通拦截器上,在HttpServletResponse封装返回给前端的信息 。这里就要先了解CORS的跨域原理,下面这段摘自https://www.jianshu.com/p/f5a88983f42d。cross-origin reso.........原创 2020-02-26 17:04:06 · 3431 阅读 · 0 评论