underscore之size

本文详细解析了Underscore.js库中的_.size()方法的工作原理及其实现方式。该方法可以用于获取数组或对象的长度,并通过_.keys()来处理对象的情况。文中还提供了具体的使用示例。

 

    size

 

     _.size(list)

 

     -------  返回list(数组or对象)的长度 

 

 

  先看一下源码

 

/*
 * @name size
 * @param {Array | Object} obj
 * @info 如果是对象依赖_.keys去算length

*/
_.size = function(obj){
     
      //对参数obj有一个预判
      if(obj == null){
            return 0;
      }

       return (obj.length === + obj.length) ? obj.length : _.keys(obj).length;
}
 

 

 

    实例

 

   

_.size([1,2]); //2
_.size({"name":"zhang","age":"26"}); //2

 

 

   依赖

 

   _.keys http://zhangyaochun.iteye.com/blog/1818574

<think>我们被要求解释一段配置文件内容。配置文件是关于Spring Boot项目的,包含了server、mybatis-plus和spring等配置项。 根据之前讨论的背景,我们知道application.yml是主配置文件,可以包含多个环境的配置,但这里给出的配置片段并没有使用多文档块(---分隔),而是直接写在一起的。 注意到有一个配置项:spring.profiles.active: dev,这表示激活dev环境(开发环境)。因此,这个配置文件很可能就是application.yml,并在其中设置了默认激活的环境为dev。 现在逐部分解释: 1. server配置: - port: 8008 设置服务器端口为8008,即应用将通过8008端口访问。 - compression: 配置压缩 enabled: true 启用压缩 mime-types: 指定哪些MIME类型会被压缩。这里列出了常见的文本类型和json等。 2. mybatis-plus配置: - type-handlers-package: 指定MyBatis-Plus的类型处理器的包路径,这样MyBatis-Plus会自动扫描该包下的类型处理器。 - configuration: MyBatis的配置项(注意:这里是MyBatis原生配置,通过mybatis-plus.configuration暴露) cache-enabled: false 禁用二级缓存(默认是true) local-cache-scope: SESSION 设置本地缓存作用域为SESSION(即在一个SqlSession内共享缓存) map-underscore-to-camel-case: true 开启自动驼峰命名规则映射(数据库下划线字段自动映射到Java驼峰属性) 3. spring配置: - profiles: active: dev 设置激活的配置文件为dev。这意味着应用会加载application-dev.yml(或application-dev.properties)中的配置。 - servlet: multipart: 配置文件上传 max-file-size: 10MB 单个文件的最大大小 max-request-size: 10MB 整个请求的最大大小(可以包含多个文件) enabled: true 启用文件上传支持(其实默认就是true,这里显式设置) 注意:整个配置文件中没有看到数据源(datasource)的配置,这通常是因为在激活的dev配置文件中(如application-dev.yml)已经配置了。 因此,我们这样解释: 这是一个Spring Boot项目的配置文件片段(application.yml),主要配置了: - 服务器端口为8008,并启用了对特定MIME类型的压缩。 - MyBatis-Plus的相关配置,包括类型处理器的包路径、关闭二级缓存、会话级本地缓存、开启驼峰映射。 - 设置默认激活的环境为dev(开发环境),并配置了文件上传的限制(每个文件最大10MB,每次请求最大10MB)。 另外,由于激活了dev环境,所以还会加载开发环境的配置文件(如application-dev.yml),其中可能包含数据库连接、日志级别等开发环境特有的配置。 下面按照格式要求进行回答。 </think>以下是针对您提供的配置文件的详细解释,按模块拆分说明: ### 一、Server 模块配置 ```yaml server: port: 8008 # 应用服务端口(HTTP) compression: enabled: true # 启用响应压缩 mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json # 需压缩的MIME类型 servlet: multipart: max-file-size: 10MB # 单个文件最大尺寸 max-request-size: 10MB # 请求总大小限制 enabled: true # 启用文件上传 ``` - **关键参数解析**: - `port:8008`:覆盖默认8080端口[^2] - 压缩配置可减少网络传输量,特别适合文本/JSON类响应 - 文件上传限制防止恶意大文件攻击,10MB是常见安全阈值[^1] ### 二、Mybatis-Plus ORM配置 ```yaml mybatis-plus: type-handlers-package: com.micloud.biz.modules.report.handler # 自定义类型处理器包路径 configuration: cache-enabled: false # 关闭二级缓存(一级缓存仍有效) local-cache-scope: SESSION # 缓存作用域为SqlSession级别 map-underscore-to-camel-case: true # 自动转换字段命名风格(user_id → userId) ``` - **设计意图**: - 禁用二级缓存避免脏数据,SESSION级缓存保证事务一致性 - 驼峰转换简化Java对象与数据库字段映射 - 自定义类型处理器处理特殊数据类型转换 ### 三、Spring核心配置 ```yaml spring: profiles: active: dev # 激活开发环境配置[^4] ``` - **环境管理机制**: - 激活`dev`环境会加载`application-dev.yml`配置 - 开发环境配置优先级高于主配置(application.yml)[^2] - 可通过启动参数切换环境:`--spring.profiles.active=prod` ### 四、配置生效逻辑 ```mermaid graph LR A[主配置 application.yml] --> B[环境配置 application-dev.yml] C[默认端口8080] --> D[当前端口8008] E[默认缓存策略] --> F[禁用二级缓存] ``` 1. 环境配置`dev`会覆盖主配置的同名参数 2. 文件上传配置同时受Servlet容器限制影响(如Tomcat的`max-http-post-size`) 3. ORM配置在应用启动时初始化数据访问层 > 该配置体现了典型的分层设计:基础配置(端口/压缩) + 框架定制(Mybatis) + 环境隔离(dev)[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值