当前位置: 首页 > news >正文

Spring - 简单实现一个 Spring 应用

一、为什么需要学习Spring框架?

1.企业级开发标配

超过60%的Java项目都使用Spring生态(数据来源:JetBrains开发者报告)。

2.简化复杂问题

通过IoC和DI,告别new关键字满天飞的代码。

3.职业竞争力

几乎所有Java岗位都要求掌握Spring框架。

Spring的江湖地位

Spring框架就像Java世界的”瑞士军刀” - 从单体应用到微服务,从数据库操作到安全认证,它几乎无所不能。

二、Spring的技术特色与优势

Spring是一个轻量级的开源Java框架,它通过提供基础的依赖注入(DI)、控制反转(IoC)以及面向切面编程(AOP)等功能,帮助开发者简化Java应用的开发。Spring不仅支持开发企业级的Web应用,还能与各种中间件和技术栈无缝集成。

Spring的四大杀手锏

1.IoC与DI:颠覆传统编程思维

• IoC(控制反转)

将对象的创建和生命周期管理交给Spring容器,而不是手动管理。

• DI(依赖注入)

IoC的一种实现方式,自动将依赖关系注入类中,解耦类之间的关系。

传统方式:程序员手动new对象 → 紧耦合

Spring方式:容器自动管理对象 → 松耦合

对比案例:

// 传统方式:手动创建对象
UserService userService = new UserServiceImpl();// Spring方式:自动注入依赖
@Autowired
private UserService userService;

2.AOP:像手术刀一样精准增强功能

AOP(面向切面编程)可以在不修改原始代码的情况下,增加额外功能。

应用场景

日志记录、事务管理、权限校验等。

原理

通过动态代理实现功能注入。

3.模块化设计:按需取用的乐高积木

Spring框架提供了多种子模块,开发者可以根据项目需求灵活选择使用:
在这里插入图片描述

4.开发效率:告别XML地狱

通过自动化配置和约定大于配置的原则,Spring大大减少了开发过程中的配置工作。

效率对比:

• 传统SSH项目:500+行XML配置

• Spring Boot项目:0行XML配置

Spring的核心思想

是通过控制反转(IoC)和依赖注入(DI),帮助开发者解耦应用组件,实现更加灵活、可测试的代码。

三、手把手实战:第一个Spring程序

创建一个最简单的Spring Boot应用程序,从而帮助你快速上手。

步骤1:项目初始化(关键配置图解)

1.访问start.spring.io。

如下是https://start.spring.io 页面:
在这里插入图片描述

2.配置项如下:

• Project:选择Maven Project

• Language:选择Java

• Spring Boot:

推荐使用Spring Boot 3.x(最新稳定版)

• Group:com.example

• Artifact:spring-demo

• Name:spring-demo

• Description:Spring Boot入门示例

• Packaging:选择Jar

• Java Version:

建议选择17(LTS长期支持版本)。

3.在“Dependencies”部分选择:

• Spring Web

• Spring Boot DevTools(支持热部署)

4.点击Generate按钮,下载生成的项目压缩包。

步骤2:解压并导入到IDE

1.下载后,将项目解压并导入IDE(如IntelliJ IDEA或Eclipse)。

2.IDE会自动加载Maven依赖,确保项目正常工作。

导入到IDE后,项目的目录结构通常如下:

spring-demo
├── pom.xml                          // 项目的Maven配置文件
└── src└── main└── java└── com└── example└── springdemo├── SpringDemoApplication.java  // Spring Boot 启动类├── GreetingService.java      // 服务接口└── GreetingServiceImpl.java  // 服务实现类└── resources├── application.properties  // 默认配置文件└── static                  // 静态资源(如HTML、JS、CSS等)└── ...└── templates               // 模板文件(如Thymeleaf模板等)└── ...

目录结构解析

• pom.xml

Maven 配置文件,包含项目依赖、插件、构建配置等信息。

在Spring Initializr生成的项目中,会自动为你生成此文件。

• SpringDemoApplication.java - Spring Boot 启动类。

• GreetingService.java - 服务接口。

• GreetingServiceImpl.java - 服务实现类。

• src/main/resources/

• application.properties - Spring Boot 配置文件。

• static/ - 存放静态资源的目录。

• templates/ - 存放模板文件的目录。

pom.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 项目的唯一标识,包含groupId、artifactId和version --><groupId>com.example</groupId>   <!-- 设置GroupID,代表组织或公司 --><artifactId>spring-demo</artifactId>   <!-- 设置ArtifactID,代表项目名称 --><version>0.0.1-SNAPSHOT</version>  <!-- 设置版本号 --><name>spring-demo</name>   <!-- 项目名称 --><description>Spring Boot入门示例</description>   <!-- 项目描述 --><!-- 设置父级Spring Boot的pom文件 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>   <!-- Spring Boot的父级pom --><version>2.7.8</version>   <!-- 设置Spring Boot版本号 --><relativePath/>  <!-- 依赖父级Spring Boot的pom --></parent><!-- 项目依赖部分 --><dependencies><!-- Web开发支持,包含了Spring MVC、Tomcat--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>  </dependency><!-- 开发工具支持,支持热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><!-- 测试支持工具,包含JUnitMockito--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!-- 配置项目构建 --><build><plugins><!-- 使用Spring Boot插件构建应用 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

解析:

• spring-boot-starter-web:提供Web开发相关的依赖,包含Spring MVC和内嵌的Tomcat容器。

• spring-boot-devtools:用于开发时支持热部署,改动代码后无需重新启动应用即可看到效果。

• spring-boot-starter-test:包含JUnit、Mockito等常用的测试工具包,便于单元测试。

• spring-boot-maven-plugin:用于打包Spring Boot应用并生成可执行JAR文件,支持通过mvn spring-boot:run启动应用。

步骤 3:创建主程序文件

创建SpringDemoApplication.java,代码如下:

package com.example.springdemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication  // 标识这是Spring Boot的入口类
public class SpringDemoApplication {public static void main(String[] args) {// 启动Spring Boot应用SpringApplication.run(SpringDemoApplication.class, args);}
}

• @SpringBootApplication注解标记了这个类是Spring Boot的启动类。

• SpringApplication.run()方法启动了Spring Boot应用并自动配置。

步骤 4:创建一个简单的Bean

创建一个接口GreetingService.java和它的实现类GreetingServiceImpl.java,用来展示Spring的依赖注入(DI)功能。代码如下:

package com.example.springdemo;public interface GreetingService {void greet();
}
package com.example.springdemo;import org.springframework.stereotype.Component;@Component  // 让Spring管理这个类为一个Bean
public class GreetingServiceImpl implements GreetingService {@Overridepublic void greet() {System.out.println("Hello, Spring Boot!");}
}

• @Component注解让Spring容器管理这个类,并将它注册为一个Bean。

步骤 5:使用Spring容器

修改主程序SpringDemoApplication.java,让Spring容器自动注入GreetingService。

package com.example.springdemo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringDemoApplication implements CommandLineRunner {@Autowired // 自动注入的魔法就在这里!private GreetingService greetingService;  // 自动注入GreetingServicepublic static void main(String[] args) {SpringApplication.run(SpringDemoApplication.class, args);}@Overridepublic void run(String... args) throws Exception {greetingService.greet();  // 调用GreetingService的greet方法}
}

• @Autowired注解使Spring自动注入GreetingService。

• CommandLineRunner接口的run方法会在应用启动后执行,打印Hello, Spring Boot!。

步骤 6:运行程序

1.在IDE中运行SpringDemoApplication类。

2.控制台输出:

Hello, Spring Boot!

总结:

DI的体现

1.依赖注入(DI)是指Spring容器负责将依赖的对象自动注入到需要使用这些对象的类中。

2.本例通过@Autowired注解,Spring容器自动将GreetingServiceImpl注入到GreetingService接口中,解耦了类之间的依赖关系。

四、总结

1.关键收获

• 掌握Spring两大核心:IoC(控制反转)与DI(依赖注入)。

• 完成首个Spring Boot应用的创建与运行。

• 理解注解驱动开发的优势。

相关文章:

Spring - 简单实现一个 Spring 应用

一、为什么需要学习Spring框架&#xff1f; 1.企业级开发标配 超过60%的Java项目都使用Spring生态&#xff08;数据来源&#xff1a;JetBrains开发者报告&#xff09;。 2.简化复杂问题 通过IoC和DI&#xff0c;告别new关键字满天飞的代码。 3.职业竞争力 几乎所有Java岗…...

数据展示功能界面设计与实现及终端控制界面思路(17)

文章目录 一、本章说明二、传感数据展示功能实现2.1 实现目标2.2 具体实现2.2.1 需要在.pro 文件添加2.2.2 mainwindow.h 头文件2.2.3 mainwindow.cpp 文件2.2.4 实现界面展示三、项目源码文件四、终端节点控制五、Qt打包EXE一、本章说明 注:本节为【基于STM的环境监测系统(…...

opendds编译开发(c#封装)

opendds是对DDS协议的开源实现&#xff0c;具体可以查阅官网。 我使用的是源码编译开发&#xff0c;博文只针对windows平台。 环境准备 环境安装 1.visual studio 2022,我是企业版&#xff0c;安装需要选择c 2.Per下载安装,下载链接&#xff1a;https://strawberryperl.com…...

电子监管码预检剔除装置提示盒尺寸过短

问题&#xff1a;电子监管码预检剔除装置提示盒尺寸过短 现象&#xff1a;自动线监控程序报警提示“盒尺寸过短”。 原因&#xff1a;分盒设备拨盒的力度和距离、盒子在传送带的角度或传送带速度有所变化都会导致自动线出现“盒尺寸过短” 解决方法&#xff1a;根据传送带的速…...

【C++11特性】Lambda表达式(匿名函数)

一、函数对象 在C中&#xff0c;我们把所有能当作函数使用的对象当作函数对象。 一般来说&#xff0c;如果我们列出一个对象&#xff0c;而它的后面又跟有由花括号包裹的参数列表&#xff0c;就像fun(arg1, arg2, …)&#xff0c;这个对象就被称为函数对象。函数对象大致可分为…...

【北京】昌平区某附小v3700存储双控故障维修案例

2025年4月22日&#xff0c;接到一位通过网络找到我们的北京老师求助&#xff0c;反馈该学校一台V3700存储的磁盘分区无法正常读取了&#xff0c;老师在机房检查时发现存储后面2个控制器均亮警告灯。急需修复该设备读取里面资料用于周末运动会所需。于是在网上找到我们协助进行排…...

汤晓鸥:计算机视觉的开拓者与AI产业化的先行者

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 汤晓鸥&#xff1a;计算机视觉的开拓者与AI产业化的先行者 一、学术与创业之路 1. 从…...

MATLAB实现神经网络的OCR识别

使用说明&#xff1a; ‌运行要求‌&#xff1a; MATLAB R2020b 或更新版本已安装 Deep Learning Toolbox推荐使用GPU加速&#xff08;训练时在代码开头添加 gpuDevice(1)&#xff09; ‌代码特点‌&#xff1a; 使用MATLAB自带的MNIST手写数字数据集包含数据可视化、网络架构…...

车载软件架构 --- AUTOSAR的方法论

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

Java 的创新与变革之路:从 JDK 7 到 JDK 23

Java 作为一种广泛应用的编程语言&#xff0c;其发展历程与 JDK&#xff08;Java Development Kit&#xff09;的演进紧密相连。自 JDK 7 起&#xff0c;Java 语言不断引入重大特性&#xff0c;持续重塑开发格局&#xff0c;推动性能、功能和开发体验的提升。本文将深入剖析 JD…...

​LangChain、LlamaIndex、MCP、Spring AI、Ollama​ 和 ​DeepSeek​ 的定义、关系及典型架构设计

以下是 LangChain、LlamaIndex、MCP、Spring AI、Ollama 和 DeepSeek 的定义、关系及典型架构设计解析&#xff1a; 一、核心组件定义与功能 1. LangChain 定位&#xff1a;构建复杂 大语言模型&#xff08;LLM&#xff09;应用的通用框架。功能&#xff1a; 支持链式调用&am…...

Docker安装的mysql限制ip访问

1.问题背景 docker安装了mysql服务&#xff0c;服务器为Redhat9&#xff0c;我们希望通过防火墙规则直接限制访问的来源ip&#xff0c;只允许特定ip进行访问&#xff0c;其余ip需要被禁止。 2.排查过程 1.首先尝试了通过firewalld方式添加对应的防火墙规则&#xff0c; sud…...

怎么样才能在idea中写入spark程序

一、准备环境 1.安装Scala插件 专业版IDEA自带Scala插件&#xff0c;社区版需手动安装 确保插件版本与IDEA版本匹配 2.选择用哪个构建工具 sbt‌&#xff1a;适用于依赖管理简单、快速迭代的项目&#xff0c;需提前安装sbt工具24。 ‌Maven‌&#xff1a;适合熟悉Java生态…...

MySQL的数据类型

目录 数据类型分类 数值类型 tinyint bit ​编辑 小数(float) 小数(decimal) 字符串类型 char varchar 日期和时间类型 String类型 enum set find_ in_ set函数 我们今天来学习MySQL的数据分类。 数据类型分类 MySQL的字符型就是相当于字符串类型&#xff0c;所…...

Vue 中局部指令(directives)的用法详解

在 Vue.js 中&#xff0c;指令是一种特殊的属性&#xff0c;用于在 DOM 元素上绑定特殊行为。除了 Vue 内置的指令&#xff08;如v-model、v-if&#xff09;&#xff0c;还可以自定义指令来封装可复用的功能。 什么是局部指令&#xff1f; 局部指令是在单个组件中定义和使用的…...

mac 基于Docker安装minio服务器

在 macOS 上基于 Docker 安装 MinIO 是一个高效且灵活的方案&#xff0c;尤其适合本地开发或测试环境。以下是详细的安装与配置步骤&#xff0c;结合了最佳实践和常见问题的解决方案&#xff1a; 一、安装 Docker Desktop 下载安装包 访问 Docker 官网&#xff0c;下载适用于 …...

Redis常用数据结构解析:从原理到实战应用

作为一名开发者&#xff0c;我深知Redis在缓存、队列等场景中的重要性。但要用好Redis&#xff0c;必须对其核心数据结构有透彻理解。本文将结合我的实践经验&#xff0c;详细讲解Redis五种最常用的数据结构及其典型应用场景&#xff0c;帮助你在开发中游刃有余。 一、String&…...

Druid监控sql导致的内存溢出

问题 druid监控sql在网页端显示&#xff0c;我的服务插入sql比较大&#xff0c;druid把执行过的sql保存在DruidDataSource类的成员变量JdbcDataSourceStat dataSourceStat&#xff1b; JdbcDataSourceStat类中的LinkedHashMap<String, JdbcSqlStat> sqlStatMap中&#…...

基于Python镜像创建docker镜像时pip install一直出现NewConnectionError的一种解决办法

用dockerfile创建docker镜像&#xff0c;在pip的时候一直是出现错误&#xff1a; 13.21 WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by NewConnectionError(<pip._vendor.urllib3.connection.HTTPSConn…...

【机器学习】朴素贝叶斯

目录 一、朴素贝叶斯的算法原理 1.1 定义 1.2 贝叶斯定理 1.3 条件独立性假设 二、朴素贝叶斯算法的几种常见类型 2.1 高斯朴素贝叶斯 (Gaussian Naive Bayes) 【训练阶段】 - 从数据中学习模型参数 【预测阶段】 - 对新样本 Xnew​ 进行分类 2. 2 多项式朴素贝叶斯 (…...

服务器硬件老化导致性能下降的排查与优化

随着企业数字化转型的深入&#xff0c;服务器作为IT基础设施的核心载体&#xff0c;其稳定性与性能直接影响业务连续性。然而&#xff0c;硬件老化导致的性能衰减问题普遍存在且易被忽视。本报告通过系统性分析服务器硬件老化现象&#xff0c;提出多维度排查方法与优化方案&…...

学习记录:DAY19

Docker 部署与项目需求分析 前言 人总是本能地恐惧未知&#xff0c;令生活陷入到经验主义的循环之中。但我们终将面对。今天的目标是把 Docker 部署学完&#xff0c;然后对项目进行需求分析。 日程 下午 4:30&#xff1a;Docker 部署项目部分学完了&#xff0c;做下笔记。晚…...

机器学习中的数据转换:关键步骤与最佳实践

机器学习中的数据转换&#xff1a;关键步骤与最佳实践 摘要 &#xff1a;在机器学习领域&#xff0c;数据是模型的核心&#xff0c;而数据的转换是构建高效、准确模型的关键步骤之一。本文深入探讨了机器学习中数据转换的重要性、常见的数据类型及其转换方法&#xff0c;以及在…...

【C++教程】三目运算符

C的三目运算符&#xff08;条件运算符&#xff09;是一种简洁的条件表达式工具&#xff0c;其形式为 条件 ? 表达式1 : 表达式2。以下是对其用法的详细总结&#xff1a; 1. 基本用法 条件判断&#xff1a;若条件为真&#xff0c;返回表达式1的值&#xff1b;否则返回表达式2…...

鼠标获取坐标 vs 相机获取坐标

Cesium鼠标点击获取坐标 vs 相机视角获取坐标 鼠标点击获取坐标流程图 #mermaid-svg-WwyCUbcFQekWG97C {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-WwyCUbcFQekWG97C .error-icon{fill:#552222;}#mermaid-svg-W…...

HarmonyOS SDK助力鸿蒙版今日水印相机,真实地址防护再升级

今日水印相机是一款真实记录"工作"和"生活"的水印拍照APP。作为专业的可信影像服务平台&#xff0c;今日水印相机依托时间、地点、身份三重数字水印技术&#xff0c;为企业和个人提供考勤打卡、外勤巡检、生活美好时刻记录等场景的可信存证服务。 面对虚拟…...

数组滑动窗口单调栈单调队列trick集【leetcode hot100 c++速查!!!】

文章目录 栈经典模版题-括号最小栈字符串解码每日温度柱状图的最大矩形 堆数组中的第k个最大元素前k个高频元素数据流中的中位数 数组最大子数组和合并区间轮转数组除自身以外数组的乘积 我们尝试将这三类问题放在一个专题中进行讨论&#xff0c;是因为它们有很多公共的部分。 …...

半监督学习与强化学习的结合:新兴的智能训练模式

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4o-mini模型生成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认其准…...

C++ 可调用实体 (详解 一站式)

目录 可调用实体 函数对象 函数指针 成员函数指针 空指针的使用&#xff08;了解&#xff09; 可调用实体 讲到调用这个词&#xff0c;我们首先能够想到普通函数和函数指针&#xff0c;在学习了类与对象的基础知识后&#xff0c;还增加了成员函数&#xff0c;那么它们都被…...

架构师与高级工程师:职业差异与进阶之路

“学而不思则罔&#xff0c;思而不学则殆。”——孔子 解释&#xff1a;该名言强调了学习和思考的结合&#xff0c;对应文章中工程师若想晋升为架构师&#xff0c;不能仅满足于对工具的学习&#xff0c;还要深入探究事物本质&#xff0c;培养深度思考能力&#xff0c;体现了思…...

声纹监测技术在新能源汽车的应用场景解析

新能源汽车声纹监测技术可应用于多个场景&#xff0c;以下是详细解析&#xff1a; 故障诊断 电机系统故障检测&#xff1a;新能源汽车的电机在运行过程中会发出特定的声音。通过声纹监测技术&#xff0c;采集电机运行时的声音信号并进行分析&#xff0c;能够及时发现电机轴承磨…...

About why docker application mode taskmanager not down in time

Tips: docker flink application mode 当任务完成或者jobmanager cancel&#xff0c;则taskmanager会因为flink集群机制继续保留监听等待jobmanager发送任务命令&#xff0c;当超过大约6 mins&#xff0c;taskmanager便会自动exited退出。...

2025-4-27-C++ 学习 数组(2)

数组 2025-4-27-C 学习 数组&#xff08;2&#xff09;P2550 [AHOI2001] 彩票摇奖题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 说明/提示题解代码 P2615 [NOIP 2015 提高组] 神奇的幻方题目背景题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例…...

timerfd定时器时间轮定时器

目录 一、timerfd定时器 二、timerfd定时器代码演示 三、时间轮定时器 一、timerfd定时器 timerfd是一种通过文件描述符管理定时器的机制 #include <sys/timerfd.h> int timerfd_create(int clockid, int flags); 作用&#xff1a;创建定时器的文件描述符 返回值&…...

什么是数据中心代理IP?有哪些用途?

在海外代理IP的选择中&#xff0c;数据中心代理IP是一个热门选项。这些代理服务器为用户分配了非ISP&#xff08;互联网服务提供商&#xff09;提供的IP地址&#xff0c;而是由第三方云服务提供商所提供的&#xff0c;通常位于数据中心内的服务器上&#xff0c;由托管和云公司所…...

机器学习分类模型性能评估:应对类别不平衡的策略与指标

在机器学习的世界里&#xff0c;模型们就像一群努力破案的侦探&#xff0c;而数据就是它们的“犯罪现场”。今天&#xff0c;咱们的主角——一个自命不凡的分类模型&#xff0c;接到了一个看似简单的任务&#xff1a;揪出那些患有罕见疾病的患者。这听起来是不是很容易&#xf…...

论文导读 - 基于边缘计算、集成学习与传感器集群的便携式电子鼻系统

基于边缘计算、集成学习与传感器集群的便携式电子鼻系统 原论文地址&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0925400522015684 引用此论文&#xff08;GB/T 7714-2015&#xff09;&#xff1a; WANG T, WU Y, ZHANG Y, et al. Portable electr…...

Molex莫仕连接器:增强高级驾驶辅助系统,打造更安全的汽车

随着对先进、高耗电量的系统的需求日益增长&#xff0c;电气化进程不断加速&#xff0c;汽车行业正处于一个十字路口。现代汽车面临着关键挑战&#xff0c;即满足不断增长的电力需求&#xff0c;特别是高级驾驶辅助系统(ADAS)等关键技术的需求。 由于现今的汽车比以往需要更多的…...

[密码学实战]SDF之密钥管理类函数(二)

[密码学实战]SDF之密钥管理类函数(二) 一、标准解读:GM/T 0018-2023核心要求 1.1 SDF接口定位 安全边界:硬件密码设备与应用系统间的标准交互层 功能范畴: #mermaid-svg-af5D1B1iHx3K8vSU {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16…...

多实例情况下,实例名较长dbca失败

dbca创建数据库&#xff0c;但是失败&#xff0c;提示ORA-01158 看来千锤百炼的dbca脚本还是菜&#xff0c;直觉上讲不应该mount上&#xff0c;看一下Action 本地已存在多个实例且名称前缀类似&#xff0c;下一步应该分析dbca日志和实例的alert.log 改为 一个简短的实例名就…...

模电——PN结

一、铺垫 这篇文章将会吊打一切、只会从电子、电场力的角度来阐述PN结为啥会形成、和变薄、变厚&#xff1b;不再考虑空穴这种东西&#xff1b;——提出空穴的人&#xff0c;真不是东西 我敢打赌&#xff0c;全网&#xff0c;我的说法不一定对&#xff0c;但是绝对是唯一可以…...

c++11 : 特殊类设计

目录 一 设计一个类&#xff1a;只能在堆上创建对象 二 设计一个类&#xff1a;只能在栈上创建对象 三 设计一个类&#xff1a;不能被拷贝 四 设计一个类&#xff1a;不能被继承 五 设计一个类: 只能创建一个对象(单例模式) 六 饿汉和懒汉模式的对比 一 设计一个类…...

算法笔记.kruskal算法求最小生成树

题目&#xff1a;&#xff08;来源&#xff1a;AcWing&#xff09; 给定一个 n 个点 m 条边的无向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 求最小生成树的树边权重之和&#xff0c;如果最小生成树不存在则输出 impossible。 给定一张边带权的无向…...

量子算法调试:Grover算法搜索空间压缩过程可视化方案

一、Grover算法核心原理回顾 Grover算法通过以下两步迭代实现搜索空间压缩: Oracle操作(相位翻转) 标记目标状态: Uω∣x⟩={−∣x⟩x=ω∣x⟩x≠ωUω​∣x⟩={−∣x⟩∣x⟩​x=ωx=ω​ 扩散操作(振幅放大) 执行反转平均操作: D=2∣s⟩⟨s∣−ID=2∣s⟩⟨s∣−I 其…...

零基础搭建AI作曲工具:基于Magenta/TensorFlow的交互式音乐生成系统

引言&#xff1a;当AI遇见莫扎特 “音乐是流动的建筑”&#xff0c;当人工智能开始理解音符间的数学规律&#xff0c;音乐创作正经历着前所未有的范式变革。本文将手把手教你构建一套智能作曲系统&#xff0c;不仅能够生成古典钢琴小品&#xff0c;还能实现巴洛克与爵士风格的…...

springboot项目文件上传到服务器本机,返回访问地址

文件上传到服务器本机&#xff0c;然后给出访问地址&#xff1a; 具体如下&#xff1a; 1、添加必要的工具类依赖 <!-- 文件上传工具类 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId>…...

mysql community 8.0.23升级到8.0.42再到8.4.5

近日生产服务器准备正式试运行&#xff0c;数据进入客户的专有网络&#xff0c;于是甲方派了人过来测漏洞&#xff0c;结果扫出一大堆。其间关于mysql的漏洞300多个&#xff0c;吓死人。给出的补丁地址&#xff0c;打开来看&#xff0c;全部是英文&#xff0c;可能是一些什么测…...

ubuntu安装docker,conda,tmux,btop,nvitop

在 Ubuntu 上安装 Docker Engine (使用华为云源) 1. 更新系统软件包 sudo apt update sudo apt upgrade -y2. 安装必要的依赖包 sudo apt install -y \ca-certificates \curl \gnupg \lsb-release \git \vim \wget3. 添加 Docker 的 GPG 密钥 (来自华为云镜像) # 创建用于存…...

大模型在肝硬化腹水风险预测及临床方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、肝硬化及大模型相关理论基础 2.1 肝硬化概述 2.2 大模型技术原理 2.3 大模型在医疗领域的应用现状 三、大模型预测肝硬化腹水术前风险 3.1 术前风险因素分析 3.2 大模型预测术前…...

孙宇晨将出席迪拜Token2049 与特朗普次子共话加密未来

据官方消息,波场TRON创始人孙宇晨将出席5月1日在迪拜举办的Token2049峰会上,并与特朗普次子埃里克特朗普(Eric Trump)进行一场备受瞩目的炉边对话,出席对话的人士还包括特朗普家族支持的去中心化金融项目WLFI(World Liberty Financial)的联合创始人Zach Witkoff。这场对话不仅彰…...