根据 CPU 内核数计算出合理的线程并发数,线程池管理和关闭。
根据 CPU 内核数计算出合理的线程并发数,线程池管理和关闭。
Spring Context Utils 获取上下文中的 bean
在使用多线程环境时,有些对象不是拖管在 Spring 容器中,但需要拿到 Bean 资源,是无法通过注入的方式的,就需要通过外部工具类来获取 Spring 上下文,再获取 Bean。
最近做报表统计,对日期时间范围查找的比较多,经常会遇到,也有些之前涉及相关的零散笔记,现整理如下。
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