国产spring软件

Spring注解补充(一)

注解补充 挑一些常用,但是深入不多的总结一下。 Bean的生命周期 在@Bean注解中,添加init属性和destroy属性 @Bean(initMethod = "initMethod", destroyMethod = "destroyMethod") public User user() { ......
注解 Spring

三分钟实战手写Spring Boot Starter

1 背景 在平时的开发中,开发的同学会把一些通用的方法,写成一个工具类,例如日期转换的,JSON转换的等等,方便业务后续调用,使代码更容易维护。 如果一些更常用的方法,例如鉴权的,加解密的等等,几乎每个项目都会使用到,这时候开发的同学就会从以前的项目中再抄过来,随着项目的增多,几乎每个项目都有一份一 ......
实战 Starter Spring Boot

0源码基础学习Spring源码系列(一)——Bean注入流程

通过本文,读者可以0源码基础的初步学习spring源码,并能够举一反三从此进入源码世界的大米! 由于是第一次阅读源码,文章之中难免存在一些问题,还望包涵指正! ......
源码 流程 基础 Spring Bean

Spring Boot Hello World 基于 IDEA 案例详解

一、Spring Boot 是什么 世界上最好的文档来源自官方的《Spring Boot Reference Guide》,是这样介绍的: Spring Boot makes it easy to create stand-alone, production-grade Spring based A ......
案例 Spring Hello World Boot

扒一扒Bean注入到Spring的那些姿势,你会几种?

大家好,我是三友~~ 这篇文章我准备来扒一扒Bean注入到Spring的那些姿势。 其实关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题 注入方式总结的不全没有分析可以使用这些注入方式背后的原因没有这些注入方式在源码中的应用示例... 所以本文就带着解 ......
姿势 Spring Bean

基于NOSTR协议的“公有制”版本的Twitter,去中心化社交软件Damus用后感,一个极端走向另一个极端

最近,一个幽灵,Web3的幽灵,在网络游荡,它叫Damus,这玩意诠释了什么叫做病毒式营销,滑稽的是,一个Web3产品却在Web2的产品链上疯狂传销,各方大佬纷纷为其背书,到底发生了什么?Damus的葫芦里,卖的是什么药? 注册和简单实用 很少有什么产品在用户注册环节会有什么噱头,但Damus确实出 ......
极端 公有制 社交 Twitter 版本

Spring Boot + WebSocket 实时监控异常

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.c ......
实时 WebSocket Spring Boot

Spring循环依赖

Spring循环依赖面试中也会被常常问到。但是它的整个过程很多人都不知道,什么叫循环依赖呢。多个Bean之间相互依赖,形成一个闭环。如下图(A,B,C分别为Spring容器中3个Bean)就能很好的描述。(PS必须保证默认的Bean都是单例的循环依赖才成立)。 上面是对Spring循环依赖的简单解释 ......
Spring

Spring异步Async和事务Transactional注解

Spring开发中我们我们常常用到@Transaction和@Async,但这2个注解加在一起很多的开发者不敢用,担心事务不生效。下面我们就仔细讲解一下这2个注解同时运用,文章用3个场景讲述它们之间的运用,相信看完本篇文章你就能灵活运用这2个注解了。 场景一:@Async + @Transactio ......
注解 Transactional 事务 Spring Async

Spring AOP与AspectJ的对比及应用

1 简介 AOP,即面向切面编程是很常用的技术,特别是在Java Web开发中。而最流行的AOP框架分别是Spring AOP和AspectJ。 2 Spring AOP vs AspectJ Spring AOP是基于Spring IoC实现的,它解决大部分常见的需求,但它并不是一个完整的AOP解 ......
AspectJ Spring AOP

Spring Native打包本地镜像,无需通过Graal的maven插件buildtools

简介 在文章《GraalVM和Spring Native尝鲜,一步步让Springboot启动飞起来,66ms完成启动》中,我们介绍了如何使用Spring Native和buildtools插件,打包出本地镜像,也打包成Docker镜像。本文探索一下,如果不通过这个插件来生成镜像。这样我们可以控制更 ......
buildtools 插件 镜像 Spring Native

dapr本地托管的服务调用体验与Java SDK的Spring Boot整合

1 简介 之前在文章《dapr入门与本地托管模式尝试》中介绍了dapr和本地托管,本文我们来介绍如果在代码中使用dapr的服务调用功能,并把它整合到Spring Boot中。 Dapr服务调用的逻辑如下: 本次实验会创建两个服务: pkslow-data,提供数据服务,用于返回数据; pkslow- ......
Spring dapr Java Boot SDK

在Spring Boot中整合Katharsis,来快速开发JSON API的Web应用

1 简介 我们进行Web API开发的时候,经常会使用Json格式的消息体,而Json格式非常灵活,不同的人会有不同的设计风格和实现,而JSON API提供了一套标准。但它并不提供直接实现。 Katharsis是JSON API的Java实现,使用它可以快速开发出Json based的Web接口,还 ......
Katharsis Spring Boot JSON API

Spring在Filter中记录Web请求Request和返回Response的内容及时长

1 简介 在Spring MVC中,我们有时需要记录一下请求和返回的内容,方便出现问题时排查。比较Header、Request Body等。这些在Controller也可以记录,但在Filter中会更方便。而我们使用的是OncePerRequestFilter。 2 记录请求 2.1 流重复读的问题 ......
时长 Response Request 内容 Spring

GraalVM和Spring Native尝鲜,一步步让Springboot启动飞起来,66ms完成启动

简介 GraalVM是高性能的JDK,支持Java/Python/JavaScript等语言。它可以让Java变成二进制文件来执行,让程序在任何地方运行更快。这或许是Java与Go的一场战争? 下载安装GraalVM 安装GraalVM 首先到官网下载,我是直接到GitHub Release Pag ......
Springboot GraalVM Spring Native 66

Linux音频采集和在国产化平台中遇到的坑(一)

最近在做一个国产化平台的软件项目的开发,是基于国产芯片的银河麒麟系统。其中有一个重要模块,是采集和播放音频数据,播放不用多说了,采集的话,包括采集麦克风和采集桌面系统声音。很多人都觉得银河麒麟不就是linux么,那不直接用ALSA就好了,我原本也是这么想的,但是实际开发下来才发现,还是有各种坑需要自... ......
音频 国产 Linux 平台

Linux音频采集和在国产化平台中遇到的坑(二)

ALSA采集这条路走不通,只能尝试其他途径,这里通过PulseAudio的接口成功实现了国产化平台上采集麦克风和系统声音的功能。 ......
音频 国产 Linux 平台

在spring boot3中使用native image

简介 在之前spring boot3文章中我们介绍了,spring boot3的一个重要特性就是支持把spring boot3的应用编译成为GraalVM的Native Image。 今天我们用具体的例子来给大家演示一下如何正确的将spring boot3的应用编译成为native image。 安 ......
spring native boot3 image boot

spring.jackson.default-property-inclusion 无效问题分析

背景 项目里每个返回体里都有@JsonInclude(JsonInclude.Include.NON_NULL) 这个注解,也就是不返回null字段 想有没有办法全局配置一下,这样就不用每个类都加这个注解了 spring: jackson: default-property-inclusion: n ......

【大型软件开发】浅谈大型Qt软件开发(四)动态链接库的宏冲突问题、COM组件开发的常见问题

最近工作的时候有一个链接库的对接工作,在对接时发生了一些小问题,这篇FAQ是办公室写这个库的工程师戴工写的,这里记录一下: 一、编译工程时报链接错误“不允许dllimport静态数据成员的定义” 1.错误截图 2.错误原因分析 此错误是Q_OBJECT和Q_DECL_IMPORT宏共同作用时产生的结 ......

【大型软件开发】浅谈大型Qt软件开发(三)QtActive Server如何通过COM口传递自定义类型?如何通过一个COM口来获得所有COM接口?

前言 最近我们项目部的核心产品正在进行重构,然后又是年底了,除了开发工作之外项目并不紧急,加上加班时间混不够了....所以就忙里偷闲把整个项目的开发思路聊一下,以供参考。 鉴于接下来的一年我要进行这个主框架的开发,本着精益求精的态度,加上之前维护前辈的产品代码确实给我这个刚毕业的社畜带来了不小的震撼 ......
软件开发 COM 软件 QtActive 接口

使用小黄鸟(HttpCanary)+模拟器(VMOS Pro)对手机APP进行抓包(附带软件)

最近接触app开发,苦于app端不能像网页端可以F12看请求信息,对于后端来说当接口出现异常却不能拿到请求参数是很苦恼的, 因为之前了解过逍遥模拟器,先使用了模拟器对app进行抓包,但发现这一款app在模拟器上面卡的很,根本玩不转。 后面找到了一个可以在手机上直接抓包的工具——httpcanary( ......
模拟器 HttpCanary 手机 软件 VMOS

Debian 软件包管理

帮助了解 Debian 软件包管理,如何使用 APT 管理软件包,如何配置 apt 源,获得更好的体验 对于部分问题 apt 源配置问题,比如 GPG error apt, apt-get 的关系 ... ......
软件包 Debian 软件

day01-Spring基本介绍

Spring基本介绍 1.官方资料和下载 1.1Spring5下载 直接访问 https://repo.spring.io/ui/native/release/org/springframework/spring/,选择相应版本即可 进入官网 https://spring.io/ 进入Spring5 ......
Spring day 01

day05-Spring管理Bean-IOC-03

Spring管理Bean-IOC-03 2.基于XML配置bean 2.15bean的生命周期 bean对象的创建是由JVM完成的,然后执行如下方法: 执行构造器 执行set相关方法 调用bean的初始化方法(需要配置) 使用bean 当容器关闭时,调用bean的销毁方法(需要配置) 例子 Hous ......
Bean-IOC Spring Bean day IOC

day07-Spring管理Bean-IOC-05

Spring管理Bean-IOC-05 3.基于注解配置bean 3.3自动装配 基本说明: 基于注解配置bean,也可以实现自动装配,使用的注解是:@AutoWired或者@Resource @AutoWired 的规则说明 (1)在IOC容器中查找待装配的组件的类型,如果有唯一的bean装配(按 ......
Bean-IOC Spring Bean day IOC

【深入浅出Spring原理及实战】「源码调试分析」结合DataSourceRegister深入分析ImportBeanDefinitionRegistrar的源码运作流程

每日一句 人的一生中不可能会一帆风顺,总会遇到一些挫折,当你对生活失去了信心的时候,仔细的看一看、好好回想一下你所遇到的最美好的事情吧,那会让你感觉到生活的美好。 注入案例代码 如何通过实现SpringBoot框架带有的ImportBeanDefinitionRegistrar注册器,注入我们想要注 ......

Spring Cloud服务发现组件Eureka

简介 Netflix Eureka是微服务系统中最常用的服务发现组件之一,非常简单易用。当客户端注册到Eureka后,客户端可以知道彼此的hostname和端口等,这样就可以建立连接,不需要配置。 Eureka 服务端 添加Maven依赖: <dependency> <groupId>org.spr ......
组件 Spring Eureka Cloud

Spring Boot通过Actuator显示git和build的信息

1 简介 为了更好的版本控制和问题定位,我们需要知道正在运行的应用是什么版本,什么时候打包的,Git的相关信息等。通过/actuator/info可以帮助我们获取这些信息。 2 配置 首先要有actuator的依赖: <dependency> <groupId>org.springframework ......
Actuator Spring build 信息 Boot

通过Docker启动Solace,并在Spring Boot通过JMS整合Solace

1 简介 Solace是一个强大的实时性的事件驱动消息队列。本文将介绍如何在Spring中使用,虽然代码使用的是Spring Boot,但并没有使用相关starter,跟Spring的整合一样,可通用。JMS是通过的消息处理框架,可以深入学习一下,不同的MQ在JMS的整合上都是类似的。 2 通过Do ......
Solace Docker Spring Boot JMS