当前位置: 首页 > news >正文

采集网站会员百度词条

采集网站会员,百度词条,平面设计网上自学,兰州建设厅评职称网站文章目录 1、线程池的使用2、MD5算法的使用3、多用枚举类 整理下近期干活儿遇到的一些坑。 1、线程池的使用 不合理点1#xff1a;jstack线程转储发现#xff0c;有几万个线程#xff0c;查看代码发现#xff0c;线程池放在方法内部或者循环体中创建#xff0c;尽管方法… 文章目录 1、线程池的使用2、MD5算法的使用3、多用枚举类 整理下近期干活儿遇到的一些坑。 1、线程池的使用 不合理点1jstack线程转储发现有几万个线程查看代码发现线程池放在方法内部或者循环体中创建尽管方法最后有shutdown关闭线程池但一定并发调用下线程数量会激增 改进使用成员变量放线程池 不合理点2:非单例Bean或者一个普通的类中线程池放成员变量了但没有static修饰正好其所在类被大量创建对象一个对象一个线程池大量线程池被创建 改进使用static修饰成员变量即某个属性所有对象都相同与之相反的是实例变量即某个属性一个对象一份如名字、身高 2、MD5算法的使用 不合理点调用一个三方接口有个请求参数accesskey其可能包含反斜线、等号等特殊字符直接传可能导致接口调用失败甚至SQL执行出错影响系统数据 改进:考虑做一个MD5加密输出一个定长字符串 补充关于MD5算法Message-Digest Algorithm 5可以将任意长度的数据映射为固定长度通常为128位的哈希值该过程不可逆无法从哈希值反推原始数据多用于数据完整性校验 输入任意长度的数据 → 经过多轮循环处理 → 输出固定长度的128位哈希值通常表示为32位十六进制字符串 需要注意MD5有安全性问题不同的输入可能生成相同的哈希值目前已构造出大量碰撞案例因此不适用于 密码存储应使用 bcrypt、Argon2 等算法。数字签名或高安全场景。 仅推荐用于非敏感数据的快速校验如文件完整性检查 3、多用枚举类 代码中多用枚举类代替直接创建的字符串常用的枚举形式一 public enum StatusEnum {SUCCESS,RUNNING }//代替大量的SUCCESS字符串 StatusEnum.SUCCESS.name()形式二加一个display而不是name()后转小写更加有灵活性 Getter public enum ClusterTypeEnum {RABBITMQ(rabbitmq),MQTT(mqtt);private final String displayName;ClusterTypeEnum(String displayName) {this.displayName displayName;}}形式三用于传参字段上直接将枚举类型和String在序列化和反序列化时自动转换如此Dto类中可以直接用枚举类型的变量而不再要求非得String同样的序列化时也会把枚举转成String import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue;Getter AllArgsConstructor public enum OrderFieldEnum {CREATE_TIME(createTime, create_time),NAME(name,name);private final String value; //值private final String field; //对应数据库中的字段方便后面写业务和Mapper层代码private static final MapString, OrderFieldEnum map new HashMap();//JsonCreator标记一个构造函数或静态工厂方法告诉 Jackson 在反序列化 JSON 时应该调用该方法来创建对象实例。JsonCreatorpublic static OrderFieldEnum check(String value) {//这里的判断map为空则遍历枚举类的值放进Map中//这个操作和上面的利用类加载时机初始化Map集合一个目的if (map.isEmpty()) {for (OrderFieldEnum orderFieldEnum : OrderFieldEnum.values()) {map.put(orderFieldEnum.getValue(), orderFieldEnum);}}//如果在Map中找不到对应的key和传入的字段相等则认为非法传参即不支持这个排序字段if (!map.containsKey(value)) {throw new MyExceptionHandler(不支持这个排序字段); //自定义异常在全局异常处理器处理}//否则返回整个枚举对象return map.get(value);}//JsonValue标记一个方法将该方法的返回值直接作为 JSON 的值而不是将整个对象序列化为 JSON 对象//使用场景当某个类本身不需要完整的 JSON 表示只需要输出其中一个字段的值时JsonValuepublic String getValue() {return value;} } 详见https://llg-notes.blog.csdn.net/article/details/130997300
http://www.hkea.cn/news/14280376/

相关文章:

  • 网站开发技术是什么上海市场监督管理局网站
  • 郑州网站免费制作教育培训网站建设ppt模板
  • 山东建设厅网站 高英seosem是什么职位
  • 热门手机网站seo搜索引擎优化推广专员
  • 网站建设管理专业介绍西部数码网站管理助手3.1
  • 厦门专业网站建设做网站分为竞价和优化
  • 磐安县建设局网站网络维护人员必备技能
  • jsp网站开发的mvc龙岗网站-建设深圳信科
  • 天津武清网站建设石家庄购物网站排名
  • 广州著名网站建设公司wordpress5.1.1编辑器还原
  • 网站开发能申请软件著作权吗渭南住建网
  • 天津网站seo营销模板内网网站建设所需硬件设备
  • 海宁市住房与城乡规划建设局网站拥有响应式网站
  • 北京网站建设的网站开发需要会什么软件
  • wordpress数据库合并天津seo推广方法
  • 丝路云网站建设网站的常用建设技术有哪些
  • 购物网站建设渠道买汽车最好的网站建设
  • 网站被墙是谁做的肇庆网络推广公司
  • wordpress建站的教程制作图片怎么做
  • 镇江网站建设策划招聘网站页面设计图片
  • 网站开发的语言桐梓网站建设
  • 做视频网站把视频放在哪里找房屋设计软件app哪个好
  • 大王庄网站建设公司商场网站开发教程
  • 网站建设维护1688电脑网页版
  • 网站建设 好公司长沙网络营销群
  • 自己做网站的优势wordpress 使用自己的表
  • 门户网站对应序号是什么网站运营的含义是什么
  • 注册网站时审核是人工审核吗还是电脑审核虚拟币交易网站开发
  • 免费搭建个人网站的3种实用方法网站公司倒闭
  • 低价网站设计珠海做网站找哪家好