热门 最新 精选 话题 上榜
前言Swift 内置并发系统的好处之一是它可以更轻松地并行执行多个异步任务,这反过来又可以使我们显着加快可以分解为单独部分的操作。在本文中,让我们看一下几种不同的方法,以及这些技术中的每一种何时特别有用。从异步到并发首先,假设我们正在开发某种形式的购物应用程序来显示各种产品,并且我们已经实现了一个ProductLoader允许我们使用一系列异步 API 加载不同产品集合的应用程序,如下所示:cla
以下是主要的 JDK(Java Development Kit)版本汇总,包括关键特性、发布年份及重要更新: 1. JDK 1.0(1996年) 首个正式版本,代号“Oak”。 包含基础Java核心API(如AWT、基本IO)。 2. JDK 1.1(1997年) 重要更新: 引入内部类(Inner Classes)。 JDBC(Java数据库连接)。 RMI(远程方法调用)。 Jav
原创 2月前
212阅读
Filter 是 JavaEE 中 Servlet 规范的一个组件,位于包javax.servlet 中,它可以在 HTTP 请求到达 Servlet 之前,被一个或多个Filter处理。它的工作流程如图:Filter的这个特性在生产环境中有很广泛的应用,如:修改请求和响应、防止xss攻击、包装二进制流使其可以多次读,等等。实际工作中,我们都是使用 SpringBoot 进行业务开发,本文总结三种
安装 spring-boot-starter-security 依赖后,项目使用的是 Spring Boot 提供的 UserDetailsService 的默认实现,这个实现只能用来验证依赖安装正确。现在来看看如何修改 Spring Security 配置。首先创建一个配置类,使用 @Configuration 注解来标识这个类是一个配置类,在类里的方法上使用 @B
Spring整合其他框架的核心思路:就是将其他框架生成的类放到Spring容器中。同理,Spring整合Mybatis也是让Mybatis生成的Mapper接口的代理对象作为Bean注册到Spring容器中。解决的核心问题:1)通过FactoryBean创建Mapper接口代理对象,并且指定构造方法参数为Mapper接口class,并且设置BeanDefinition.setAutowireMod
IDEA 热部署 (Hot Deployment) 热部署是指在应用程序运行过程中,无需重启服务就能使代码修改生效的功能。在 IntelliJ IDEA 中,可以通过以下几种方式实现热部署: 1. Java 应用热部署 使用 Spring Boot DevTools 在 pom.xml 中添加依赖: <dependency> <groupId>org.sprin
原创 2月前
238阅读
什么是单例模式?单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类(或结构体,在 Go 语言中)只有一个实例,并提供一个全局访问点来访问这个实例。这个模式在需要协调系统中动作的场景下非常有用,例如日志记录、配置管理或数据库连接池。为什么在 Go 中需要单例模式?Go 语言以其简洁和高效的并发能力而闻名,支持 goroutine 和通道(channel)来实现并发编程。
原创 2月前
82阅读
Go 语言单例模式全解析:从青铜到王者段位的实现方案
把 Spring Security 添加到 Spring Boot web 应用中,只要添加添加 spring-boot-starter-security 依赖即可。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-se
在 IntelliJ IDEA 中设置编辑器或整个 IDE 的背景图可以通过以下方法实现。目前 IDEA 原生不支持直接设置背景图,但可以通过插件或修改主题的方式实现: 方法 1:使用插件(推荐) 插件名称:Background Image Plus + 安装插件: 打开 File → Settings → Plugins。 搜索 Background Image Plus + 并安装。
原创 2月前
624阅读
一、关于Redis内存回收Redis是基于内存操作的非关系型数据库,Redis中提供了多种内存回收策略,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间,那么选择淘汰哪些对象呢?Redis的内存回收,主要围绕以下两种方式:1、Redis过期策略:删除已经过期的数据。2、Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据。注意:过期
Spring Boot Web 应用通常分为三层,表现层(Controller)、业务逻辑层(Service)和数据访问层(DAO/Repository),DAO 即 data access object,共同构成了分层架构。这种分层设计通过明确职责边界,实现了代码的解耦、复用和可维护性。每层通过依赖注入(DI)协作,形成 “上层依赖下层,下层不依赖上层” 的单向依赖关系:Controller 层
史上最详 Thymeleaf 使用教程前言基础语法文本标签 th:text/th:utext字符串拼接*{...}和 ${...}表达式#{...}表达式~{...}片段表达式@{...}链接网址表达式条件判断 th:if/th:unlessswitchfor循环th:hrefth:classth:attrth:valueth:actionth:idth:inlineth:onclickth:s
Spring Boot 官方文档学习(一)入门及使用个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧。另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题。其他说明: 如果对Spring Boot没有概念,请先移步上一篇文章 Spring Boot 学习。本篇原本是为了深入了解下Spring Boot而出现的。另外,Spring B
在 IntelliJ IDEA 中设置代码格式化模板(即代码风格)可以通过以下步骤完成。这里以 Java 代码为例,其他语言类似: 1. 打开代码风格设置 方法 1: File → Settings → Editor → Code Style 方法 2: 快捷键 Ctrl + Alt + S(Windows/Linux)或 ⌘ + ,(Mac),搜索 Code Style。 2. 选择语言
原创 2月前
856阅读
前言本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底!简单使用Java API规范 (JSR303) 定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate validatio
原创 2月前
75阅读
HTML 中的 <input> 标签是表单中最常用的元素之一,拥有超过 50 个属性(包括全局属性和专用属性)。以下是分类整理的核心属性列表: 一、通用属性(所有 <input> 类型共用) 基础属性 type:输入类型(如 text, password, email, checkbox, radio, file, submit 等,共约 23 种)。 name:字
原创 2月前
282阅读
只查询一个值 public Long getUserCount() { String sql = "SELECT COUNT(*) FROM user"; return jdbcTemplate.queryForObject(sql, Long.class); }查询一条记录public User getUserById(Long id) { String sql =
原创 2月前
53阅读
概念JNI:Java本地调用 ,是Java Native Interface的缩写。JNI是一种技术,可以做到以下两点:Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。·Native程序中的函数可以调用Java层的函数,也就是在C/C++程序中可以调用Java的函数。为什么需要jniC/C++语言已经有了很多成熟的模块,Java只需要直接调用即可。
原创 2月前
23阅读
几乎所有的 Java 应用都需要用到数据库技术,一般项目中以关系型数据库为主,主流的关系型数据库有MySQL、PostgreSQL、Oracle、SQL Server,其中 MySQL 具有开源免费、易用性、性能和生态的优势,使其成为多数场景下的优选数据库。首先需要有一个 MySQL 数据库,如果要在电脑上安装,可以参考 MySQL 安装简明教程 进行安装。Spring Boot 中提供了对主流数
原创 2月前
85阅读
最近有朋友向我询问一些Netty与SpringBoot整合的相关问题,这里,我就总结了一下基本整合流程,也就是说,这篇文章 ,默认大家是对netty与Spring,SpringMVC的整合是没有什么问题的。现在,就进入正题吧。Server端:总的来说,服务端还是比较简单的,自己一共写了三个核心类。分别是NettyServerListener:服务启动监听器ServerChannelHandlerA
2月前
375阅读
spring boot Netty 优化 netty springboot starter
SDWebimage 源码分析这家伙其实就是完成了 异步解压缩+缓存策略options的所有枚举类型typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {  //失败后重试 SDWebImageRetryFailed = 1 << 0, //UI交互期间开始下载,导致延迟下载比如UIScrollView减速 S
提示:技术用的是 springboot + thymeleaf + mybatis + bootstrap 制作不易, 希望大家可以支持一下博主。 整个项目私聊或者评论我会发给大家。文章目录前言效果展示一、MySQL文件二、Java代码和前端代码1.导入项目依赖的包(pom.xml)2.登录和注册功能的实现3.学生信息展示功能(包括分页)总结前言提示:这里可以添加本文要记录的大概内容:例如:里面包
目录一、修改配置文件二、Jvm调优三、Jvm调优实战1、未设置JVM参数的情况项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.properties。 SpringBoot项目详细的配置文件修改文档https://docs.spring.io/sp
在现代企业网络环境中,网络故障排查、性能监控、安全审计等需求日益增长,传统的网络监控工具往往操作复杂、难以与业务系统集成。本文将详细介绍如何使用 Spring Boot + Pcap4j 构建一个功能完整的网络流量抓包与分析系统,实现实时监控、多协议解析、数据可视化等功能。痛点分析传统网络监控面临的挑战网络故障排查困难:现有工具如 Wireshark 虽然功能强大,但操作复杂,
2月前
147阅读
SpringBoot 实现网络流量抓包与实时分析
❝操作系统分配给 Redis 的内存有 6GB,通过指标 used_memory_human 发现存储数据只使用了 4GB,为何会这样?为何无法保存数据?通过 CONFIG SET maxmemory 100mb或者在 redis.conf 配置文件设置 maxmemory 100mb Redis 内存占用限制。当达到内存最大值,会触发内存淘汰策略删除数据。除此之外,当 key 达到过期时间,Re
原创 2月前
41阅读
前言SpringBoot 是一个让所有 Java 开发者都又爱又恨的框架。喜欢它是因为其易用性和提供的丰富功能,而它较为复杂的设计也让许多开发者头疼不已。本期『知行』将会为大家带来以下内容,和大家一起梳理 SpringBoot 中一些较为核心的内容。SpringBoot 启动流程SpringBoot 的启动流程主要有以下几个核心步骤:NO.步骤说明1创建启动容器创建 Defau
环境与profile1. 在JavaConfig中配置profile,使用@profile注解即可。    Spring3.0之前只可以在类上定义@profile注解,3.2之后可以在方法上定义@profile注解。2.  在XML中配置profile,定义beans的属性即可。<beans profile="dev"> </be
2月前
493阅读
在 Web 应用中,通常都会通过创建结果类统一响应格式。首先需要创建一个响应状态码 ResultCode 枚举类,起到以下作用:定义了常见的 HTTP 状态码和对应的消息区分了成功状态、客户端错误和服务器错误避免了代码中硬编码状态码和消息// ResultCode.java public enum ResultCode { // 成功状态码 SUCCESS(200, "操作成功"),
一、痛点分析:公共字段维护的三大困境1.1 典型问题场景// 订单创建逻辑 public void createOrder(OrderDTO dto) { Order order = convertToEntity(dto); // 手动设置公共字段 order.setCreateTime(LocalDateTime.now()); order.setUp
背景公司最近有一个项目二期需要对一些功能进行改造,涉及部分框架内置业务接口个性化定制,兼容老接口功能并且增加一部分新的数据返回,由于前端调用这些接口分布较多且较为零碎,修改测试成本较大,所以打算在框架层面提供路由覆盖功能,加快项目进度减少无技术含量的修改带来的系统风险设计提供自定义注解指定需要覆盖的路由及新路由地址系统启动时扫描所有注解数据并进行映射处理注册自定义路由映射配置类实现注解定义@Tar