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

开发整合笔记

properties文件

java中有对应的Properties对象,本质是Map,键值对格式。通过输入流将properties文件读取到内存,通过输出流将内存中的数据写入properties文件中。

XML文件

可扩展标记语言。可以维护关系,有标签和元素,但只能有一个根标签。想要读取解析xml文件到程序内存中,可以使用第三方框架Dom4j,解析的思想是文档对象模型。

约束文档。约束xml文件的格式,如标签、属性。有DTD文档(后缀dtd,无法约束类型)、Schema文档(后缀xsd,可以约束类型)。DTD文档:使用!DOCTYPE标签引入约束文档。Schema文档:使用xsi:schemaLocation属性引入约束文档。

日志

体系结构:Java常用的有两套日志接口,一个是本身提供的Commons Logging(JCL),其中JUL就是实现的这个接口;另一个是第三方的SLF4J接口,Log4j和Logback(使用最多)就是实现的这个接口。

Logback:三个模块,logback-core:核心模块,其他两个模块的依赖,必须有;logback-classic:同化log4j,完整的实现slf4j接口,必须有;logback-access:与Tomcat和Jetty等容器集成,提供HTTP访问的功能,可选。

MongoDB 数据库

基本使用:

  • 安装和依赖:先安装 MongoDB 服务端,并引入 MongoDB Java 驱动依赖
  • 连接数据库:通过 MongoClient 创建与 MongoDB 的连接
  • 操作集合:MongoDB 中的数据存储在集合(Collection)中,每个集合类似于 MySQL 中的表
  • 数据格式:MongoDB 以 BSON(类 JSON 格式)存储文档,文档类似于 MySQL 的一行记录
  • CRUD 操作:可以直接对文档进行插入、查询、更新和删除操作,支持复杂的嵌套结构和灵活的查询语法。

适用场景

  • 动态或非结构化数据:如 JSON 格式的数据、日志数据。
  • 需要快速迭代开发:数据结构经常变更。
  • 海量数据存储:需要水平扩展的场景,如物联网数据。
  • 高并发读写:如社交媒体、实时数据分析

MongoDB 与 MySQL 的优劣势对比

  • 数据模型:MongoDB-基于文档的非关系型数据库,结构灵活,支持嵌套文档和数组。MySQL-基于表的关系型数据库,结构固定,数据规范化强。
  • 性能:MongoDB-写入和读取速度较高,尤其适合海量数据和非结构化数据的处理。MySQL-高度优化的事务支持,适合复杂查询和结构化数据。
  • 事务支持:MongoDB-支持多文档事务,但性能可能受影响,不如 MySQL 事务模型稳定。MySQL-强大的 ACID 支持,事务处理成熟可靠。
  • 查询能力:MongoDB-灵活的文档查询和聚合管道,适合动态字段和复杂嵌套结构数据查询。MySQL-强大的 SQL 查询能力,适合跨表关联和复杂的分析查询。
  • 扩展性:MongoDB-水平扩展方便,天然支持分片。MySQL-垂直扩展优异,但水平扩展需要额外设计(如分库分表)。
  • 数据结构:MongoDB-灵活的数据结构,字段可动态添加,适合非结构化或频繁变更的数据模型。MySQL-严格的数据结构,适合结构化和强约束的数据模型。
  • 开发效率:MongoDB-开发效率高,减少模式设计的复杂性,适合快速迭代和原型开发。MySQL-需要详细设计表结构,适合稳定、长期维护的系统开发。

EhCache

本地缓存,java实现,比Reids更高效,线程安全的

使用 EhCache 3.x 版本时,首先需要导入相关依赖。通过 CacheManagerBuilder 对象创建 CacheManager 实例。在 CacheManager 中可以通过 XML 配置或 API 动态创建多个缓存(Cache)对象,每个缓存都有一个唯一名称,并可单独设置缓存模式、过期时间、大小等属性。随后,通过 CacheManager 的 getCache 方法,指定缓存名称、键类型和值类型,即可获取对应的缓存对象,进而执行缓存的存取操作


http://www.kler.cn/a/449088.html

相关文章:

  • ubuntu22.04安装PaddleX3
  • GMSSL的不同python版本
  • 重温设计模式--命令模式
  • 叉车作业如何确认安全距离——UWB测距防撞系统的应用
  • 【java基础系列】实现数字的首位交换算法
  • Set集合进行!contains判断IDEA提示Unnecessary ‘contains()‘ check
  • 华为IPD流程6大阶段370个流程活动详解_第二阶段:计划阶段 — 86个活动
  • 基于Springboot的数字科技风险报告管理系统
  • 百度热力图数据处理,可直接用于论文
  • 层次聚类算法的研究
  • 江苏计算机专转本 技能Mysql知识点总结(三)
  • CTF-WEB php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]
  • open Feign服务抽取
  • 深入了解蓝牙Profile类型与设备的对应关系
  • SpringCloud 入门(2)—— 跨服务调度
  • 详细指南:如何手动卸载 Ubuntu 20.04 中源码编译安装的 OpenCV
  • 【华为OD-E卷-最左侧冗余覆盖子串 100分(python、java、c++、js、c)】
  • 如何让企业研发设计团队低配电脑流畅做3D大装配设计?
  • 【VScode】第三方GPT编程工具-CodeMoss安装教程
  • Webrtc音频模块(四) 音频采集
  • [SWPUCTF 2022 新生赛]什锦
  • linux网络 | 序列化反序列化的概念 与 结合网络计算器深度理解
  • Ubuntu概述
  • MySQL面试学习笔记(全)
  • 指数退避算法
  • Java-10