跳至主要内容

博文

目前显示的是 2019的博文

unsplash 反代 + cloudflare 缓存

Unsplash 反代 + Cloudflare 缓存Unsplash 在大陆访问不稳定,我搭建了一个反代服务器并且套上了 Cloudflare CDN + 开启一直在线模式。速度还是蛮客观的,想要拿去用的同学可以试试。如果不能正常使用,请留言。测试将下列地址https://images.unsplash.com/photo-1571766280138-1ba739fcc856?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1868&q=80替换成即可https://unsplash.nesnode.com/photo-1571766280138-1ba739fcc856?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1868&q=80反代 Nginx 配置location / { expires 12h; if ($request_uri ~* "(php|jsp|cgi|asp|aspx)") { expires 0; } proxy_pass https://images.unsplash.com; proxy_set_header Host images.unsplash.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; #持久化连接相关配置 #proxy_connect_timeout 30s; #proxy_read_timeout 86400s; #proxy_send_timeout 30s; #proxy_http_version 1.1; #proxy_set_header Upgrade $…

Java 通用缓存类简单实现

Java 通用缓存类简单实现使用方法很简单,两行代码搞定。DataCache<Object> dataCache =newDataCache<>(()-> mDao.getAll()); List<Object>= dataCache.getData()其中() -> mDao.getAll()是超时的时候自动调用的接口。假设你之前获取数据的方法是 getData() ,
那上述代码就应该改成 () -> getData()。最后使用 dataCache.getData() 获取数据即可。代码简单实现/** * 使用方法示例 * 初始化 * DataCache<Object> dataCache = new DataCache<>(() -> mDao.getAll()); * 读取缓存 * List<Object> = dataCache.getData() * 如果你有多个缓存,你可以考虑使用 Map 结构来存储 * Map<String, DataCache<Object>> cacheMap = new HashMap<>(); * * @param <T> 数据类型 * @author Zmaplex * @version 0.1 */publicclassDataCache<T>{/** * 超时时间,单位秒 * 可以使用如下构造器,设置超时时间 * DataCache(DataCacheCall<T> dataCacheCall, int outTime) */privateint outTime =100;/** * 最后修改时间。 * 每次读取数据的时候,自动更新这个字段。 */privatelong lastModify =0;/** * 通用数据列表,用作缓存 */private List&l…

AndSever 隐藏返回字段

AndSever 隐藏返回字段model 的定义这块代码中也顺带演示了在 Android Room 中如何定义多个外键,定义多个索引。package com.example.zdhtserver.mvvm.room.PeoplePhoto;import androidx.room.ColumnInfo;import androidx.room.Entity;import androidx.room.ForeignKey;import androidx.room.Index;import androidx.room.PrimaryKey;import com.example.zdhtserver.mvvm.room.FaceLibrary.FLRoom;import com.example.zdhtserver.mvvm.room.People.PRoom;importstatic androidx.room.ForeignKey.CASCADE;// 人员照片模型 @Entity( foreignKeys ={@ForeignKey(entity = FLRoom.class, parentColumns ="faceSetId", childColumns ="faceSetId", onDelete = CASCADE, onUpdate = CASCADE),@ForeignKey(entity = PRoom.class, parentColumns ="classId", childColumns ="classId", onDelete = CASCADE, onUpdate = CASCADE),}, indices ={@Index(value ={"faceSetId","classId"}, unique =true),@Index(value ={"classId"}),@Index(value ={"faceSetId"}),@Index(value ={"faceFeature"}),}…

AndSever 2 如何实现下载文件

AndSever 2 如何实现下载文件AndSever 2 如何实现文件下载关于 AndSever 2AndServer是Android平台的Web Server和Web Framework。 它基于编译时注解提供了类似SpringMVC的注解和功能,如果您熟悉SpringMVC,则可以非常快速地掌握它。源码地址: https://github.com/yanzhenjie/AndServer
文档地址: https://www.yanzhenjie.com/AndServer
旧版文档: https://www.yanzhenjie.com/AndServer/1.x特性部署静态网站使用注解开发Http Api全局请求拦截器,使用注解,全局多个全局异常处理器,使用注解,全局唯一全局消息转换器,使用注解,全局唯一依赖添加依赖时请替换下述 {version} 字段为 Github上公开的最新版本号。dependencies { implementation 'com.yanzhenjie.andserver:api:{version}' annotationProcessor 'com.yanzhenjie.andserver:processor:{version}' } 读者要求具有 Android 开发基础使用 AndSever 开发过简易的 API 接口官方文档已在本文开始部分给出如有不会,请科学上网方可给我留言~问题如何实现文件下载 ?@[email protected](path ="/api/peoplePhoto")publicclassFileController{/** * 下载图片文件接口 * * @param imageId 图片的Id * @param response 框架自带 */@GetMapping("/download")publicvoiddownload(@QueryParam(name ="imageId") String imageId, HttpResponse response){ String path = Peop…

Android databinding 传递变量 给 include 布局

Android databinding 传递变量 给 include 布局Android databinding 传递变量 给 include 布局一个问题:根布局变量如何传递给 include 引入的子布局中呢?子布局 layout_own_table子布局也需要用 layout 包裹,并用以下写法去声明变量<layoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><data><variablename="ownVm"type="com.example.uidemo.mvvm.viewmodel.framgent.HouseRecordModel"/></data> .... </layout>如下:<?xml version="1.0" encoding="utf-8"?><layoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><data><variablename="ownVm"type="com.example.uidemo.mvvm.viewmodel.framgent.HouseRecordModel"/></data><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:fillViewport="true"app:layout_constraintBottom_toBottomOf=&q…