最近做报表统计,对日期时间范围查找的比较多,经常会遇到,也有些之前涉及相关的零散笔记,现整理如下。
MyBatis 在接收日期时间参数进行日期时间范围查询时,有些需要注意的地方,例如日期时间参数的数据类型可能是Date
或String
类型,或传参与数据库存储的日期时间格式并不一致等情况。
此情况更多与 SQL 的字符串拼接或日期时间格式转换有关。
最近做报表统计,对日期时间范围查找的比较多,经常会遇到,也有些之前涉及相关的零散笔记,现整理如下。
MyBatis 在接收日期时间参数进行日期时间范围查询时,有些需要注意的地方,例如日期时间参数的数据类型可能是Date
或String
类型,或传参与数据库存储的日期时间格式并不一致等情况。
此情况更多与 SQL 的字符串拼接或日期时间格式转换有关。
Spring Boot 2系列(二十四):内嵌Tomcat SSL配置
现在https
的请求链接已非常普遍了,https可理解为 http的安全版,是基于 http 下加入了SSL(Secure Sockets Layer 安全套接层)层,为数据通讯提供安全支持。
SSL 配置是基于服务端的,Nginx 和 Tomcat 都可以配置 SSL,SSL证书可以自己通过JDK工具生成,也可以购买认证的证书。
SSL 协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等(- -百度百科)。
Java Web 项目的部署环境通常在 Servlet容器(Tomcat)外面一层使用 Nginx 来做返向代理,在 Nginx 服务器里面配置 SSL 并将 HTTP 重定向到 HTTPS,或者在 Tomcat 容器里配置 SSL,将HTTP 请求重定向 到 HTTPS。
本篇针对 Spring Boot 内嵌 Tomcat 配置 SSL 进行讲解,实际使用可能并不多,但可以了解Spring Boot 内嵌 Tomcat 对 SSL 的支持和配置。
Spring Boot 2系列(二十三):自动配置之@Conditional条件注解
要理解 Spring Boot 的自动配置,就必须先理解 Spring 的 @Conditional
注解,在自动配置类中常看到该注解的使用。
该注解指定了在什么条件下创建 Bean 进行配置。 Spring Boot包含多个 @Conditional
注释,可以在@Configuration
注解的类和@Bean
注解方法中使用。
@Conditional
类型的注解,可以注解在类上,可以注解在Bean
方法上,可以允许基于Spring Environment属性包含配置,可以仅允许在存在特定资源时包含配置。
也可自定义,通过实现Condition
接口,并重写其matches
方法来构造判断条件。
Spring Boot 2系列(二十二):Web 静态资源,跨域,消息转换器,拦截器,监听器,过滤器等相关配置
Spring Boot对 Web 项目提供了很好的支持,对视图解析、静态资源、格式化和转器器、消息转换器提供了自动配置,自动映射了静态首页。
Web 相关自动配置在 Spring Boot 自动配置包(org.springframework.boot:spring-boot-autoconfigure.2.0.0.RELEASE)里 Web 路径下:org.springframework.boot.autoconfigure.web。在该路径下可以看到提供了Web相关的自动配置,如 RestTemplate, embedded(内嵌的应用服务器:jetty,tomcat,undertow), format,reactive,Servlet等。
一份不错的可通用的js
,封装了一些自定义的js方法。
后台管理系统经常要用到树形插件来展示具有父子关系的功能,如父子菜单,省市区关系等;还有通过树形插件节点的勾选来设置用户与菜单权限的关联,或某些功能与省市区的关联。
zTree在树形节点的展示上用的是比较多的,支持 JSON 数据,可灵活编辑(增/删/改/查)功能。
Web管理后台绝大部分都会有左侧导航菜单功能,同时使用管理后台会有多组用户,每组用户所拥有的菜单权限是存在差异的,这就涉及到用户角色权限。
系统在设计时就需要考虑用户,角色,菜单三者之间的关系。如果一个用户有多种角色,则至少涉及5张表,如果一个用户只属于一种角色,则会涉及4张表。
Spring Boot 2系列(二十一):RestTemplate 远程调用 REST 服务
互联网项目经常存在远程调用的情况,如果调用的是 REST 远程服务,可以使用 Spring Web 提供的RestTemplate.
RestTemplate 是原始的 Spring REST 同步请求客户端,通过 HTTP 客户端提供更高级别的 API,使得调用 REST 端点变更更容易。
Spring Boot 没有自动配置 RestTemplate,但自动注册了 RestTemplateBuilder Bean,用于构建 RestTemplate,并且 HttpMessageConverters 会自动应用到 RestTemplate 实例中。
如果是 WebFlux 项目,可以使用 WebClient 来远程调用 REST 服务,相比 RestTemplate,WebClient 拥有更多的功能,并且是完全响应式, 后续再对 WebClient 进行详解。
Spring Boot > Calling REST Services with RestTemplate,Spring Framework > Using RestTemplate
Spring Boot 2系列(二十): 配置文件加载及参数绑定
Spring Boot提倡的是零配置,提供了强大的自动配置功能;只要装配了相应的功能,默认就会启用通用的配置(习惯优于配置)。
但实际开发中,除了默认的配置外,根据需求难免需要定制配置文件;SpringBoot默认的配置文件application.properties
会被自动加载,但定制的配置文件则需要我们自己手动加载。
SpringBoot加载配置文件是将文件内容读取到Spring容器中,目的是为了给Spring容器中的上下文对象调用,达到一次加载,随处调用。
Spring Boot 2系列(十九):Spring JDBC JdbcTemplate 集成与使用
JdbcTemplate 是由 Spring Data JDBC 项目提供的,Spring Data JDBC 可以轻松实现基于 JDBC 的存储库,处理对基于 JDBC 的数据访问层的增强支持,
Spring Boot 为使用 JDBC 提供了自动配置,将 JdbcTemplate 注册了为 Bean,自动配置了数据源,JDBC 自动配置类:org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration。
JdbcTemplate 类是 JDBC 核心包中的核心类,执行核心 JDBC 工作汉,简化了 JDBC 的使用。
Spring Framework Documentation > Data Access with JDBC,Spring Data JDBC 项目 ,Spring Boot Using Jdbc Template。