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

【SpringMVC】十分钟跑起来一个SpringMVC项目

目录标题

  • 1 项目概述
    • 1.项目结构解析
    • 2. MVC项目的结构和每个组件的作用:
    • 3. 项目的工作流程:
    • 4 后期可以扩展的点:
    • 2.源码学习
      • 1. HelloController 类,Spring MVC控制器
      • 2 springmvc-servlet.xml - Spring MVC的主要配置文件
      • 3.web 目录 - Web应用程序资源 WEB-INF/jsp - 存放JSP视图文件
            • 3.1 hello.jsp
            • 3.2 index.jsp
      • 4,WEB-INF/web.xml - Web应用程序的部署描述文件
      • 5. pom.xml - Maven项目的配置文件,用于管理项目依赖和构建过程
      • 6. springmvc-03-annotation.iml - IntelliJ IDEA的项目模块文件
  • 3 逐行学习代码
  • 4 服务器设置 tomcat

1 项目概述

1.项目结构解析

在这里插入图片描述

项目在运行的时候 会自动生成 target文件夹
在这里插入图片描述

2. MVC项目的结构和每个组件的作用:

  1. 项目根目录:springmvc-03-annotation

    • 名称表明这是一个使用注解方式配置的Spring MVC项目
  2. 源代码目录:src/main/java

    • nuc.ss.controller 包:
      • HelloController 类:使用注解配置的控制器类
      • 控制器负责处理用户请求,进行业务逻辑处理,并返回视图
      • 标注显示"100% methods"说明所有方法都已实现
  3. 资源配置目录:src/main/resources

    • springmvc-servlet.xml:Spring MVC的核心配置文件
      • 定义组件扫描
      • 配置视图解析器
      • 配置静态资源处理
      • 配置注解驱动等
  4. Web应用目录:web

    • WEB-INF/ - 安全目录,外部无法直接访问
      • jsp/ 目录:存放JSP视图文件
        • hello.jsp - 展示"Hello World"的视图
        • index.jsp - 应用的首页
      • web.xml - Web应用的部署描述文件
        • 配置DispatcherServlet
        • 配置URL映射
        • 配置字符编码过滤器等
  5. 项目构建文件:

    • pom.xml:Maven项目配置文件
      • 定义项目坐标(groupId, artifactId, version)
      • 管理项目依赖(Spring MVC, Servlet, JSP等)
      • 配置构建插件
      • 管理项目生命周期
  6. target/ 目录:

    • 存放编译后的类文件和资源
    • 包含最终的WAR包
  7. IDE相关文件:

    • springmvc-03-annotation.iml:IntelliJ IDEA的项目模块文件
    • 包含项目配置信息和依赖关系

3. 项目的工作流程:

  1. 用户发送请求到服务器
  2. 请求被DispatcherServlet接收
  3. 根据URL映射到对应的Controller方法
  4. Controller处理请求并返回视图名称
  5. 视图解析器找到对应的JSP文件
  6. 渲染视图并返回给用户
    在这里插入图片描述

4 后期可以扩展的点:

  1. 可以添加Service层处理业务逻辑
  2. 可以添加DAO层处理数据访问
  3. 考虑添加日志配置文件
  4. 可以添加测试目录进行单元测试
  5. 可以考虑使用更现代的视图技术(如Thymeleaf)替代JSP

这个项目结构是典型的Spring MVC应用,适合学习Spring MVC的基础知识和注解配置方式。

2.源码学习

src/main/java - 存放Java源代码

1. HelloController 类,Spring MVC控制器

package nuc.ss.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/hello")
public class HelloController {@RequestMapping("/h1")public String hello(Model model) {//封装数据model.addAttribute("msg","Hello,这是最简单的SpringMVC!!!");return "hello";//会被视图解析器处理}
}

src/main/resources - 存放配置文件

2 springmvc-servlet.xml - Spring MVC的主要配置文件

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 --><context:component-scan base-package="nuc.ss.controller"/><!-- 让Spring MVC不处理静态资源(css,js) --><mvc:default-servlet-handler /><!--支持mvc注解驱动在spring中一般采用@RequestMapping注解来完成映射关系要想使@RequestMapping注解生效必须向上下文中注册DefaultAnnotationHandlerMapping和一个AnnotationMethodHandlerAdapter实例这两个实例分别在类级别和方法级别处理。而annotation-driven配置帮助我们自动完成上述两个实例的注入。--><mvc:annotation-driven /><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 后缀 --><property name="suffix" value=".jsp" /></bean></beans>

3.web 目录 - Web应用程序资源 WEB-INF/jsp - 存放JSP视图文件

3.1 hello.jsp
<%--&lt;%&ndash;--%>
<%--  Created by IntelliJ IDEA.--%>
<%--  User: Administrator--%>
<%--  Date: 2020/7/13 0013--%>
<%--  Time: 14:26--%>
<%--  To change this template use File | Settings | File Templates.--%>
<%--&ndash;%&gt;--%>
<%--<%@ page contentType="text/html;charset=UTF-8" language="java" %>--%>
<%--<html>--%>
<%--<head>--%>
<%--    <title>Title</title>--%>
<%--</head>--%>
<%--<body>--%>
<%--${msg}--%>
<%--</body>--%>
<%--</html>--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Spring MVC Demo</title><style>body {font-family: Arial, sans-serif;margin: 0;padding: 20px;background-color: #f0f2f5;display: flex;justify-content: center;align-items: center;min-height: 100vh;}.card {background: yellowgreen;padding: 30px;border-radius: 8px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);text-align: center;}.message {color: #cb2525;font-size: 24px;}</style>
</head>
<body>
<div class="card"><div class="message">${msg}</div>
</div>
</body>
</html>
3.2 index.jsp
<%--Created by IntelliJ IDEA.User: AdministratorDate: 2020/7/13 0013Time: 14:21To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><body>$END$</body>
</html>

4,WEB-INF/web.xml - Web应用程序的部署描述文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--1.注册servlet--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--通过初始化参数指定SpringMVC配置文件的位置,进行关联--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!-- 启动顺序,数字越小,启动越早 --><load-on-startup>1</load-on-startup></servlet><!--所有请求都会被springmvc拦截 --><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

5. pom.xml - Maven项目的配置文件,用于管理项目依赖和构建过程

<?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"><parent><artifactId>SpringMVC</artifactId><groupId>nuc.ss</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>springmvc-03-annotation</artifactId><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
</project>

6. springmvc-03-annotation.iml - IntelliJ IDEA的项目模块文件

<?xml version="1.0" encoding="UTF-8"?>
<module version="4"><component name="FacetManager"><facet type="web" name="Web"><configuration><descriptors><deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" /></descriptors><webroots><root url="file://$MODULE_DIR$/web" relative="/" /></webroots><sourceRoots><root url="file://$MODULE_DIR$/src/main/java" /><root url="file://$MODULE_DIR$/src/main/resources" /></sourceRoots></configuration></facet></component>
</module>

这是一个使用注解配置方式的Spring MVC示例项目,从项目名称 springmvc-03-annotation 可以看出这可能是一个学习或练习项目。项目使用Maven进行依赖管理,并采用了JSP作为视图技术。

3 逐行学习代码

我来帮您详细注释每个关键代码文件:

  1. HelloController.java:控制器类
package nuc.ss.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller  // 标识这是一个Spring MVC控制器
@RequestMapping("/hello")  // 类级别的请求映射,指定这个控制器的基础URL路径
public class HelloController {@RequestMapping("/h1")  // 方法级别的请求映射,完整访问路径为/hello/h1public String hello(Model model) {  // Model用于向视图传递数据// 向模型中添加属性,key为"msg",value为显示的消息// 这个数据可以在视图(JSP)中通过${msg}获取model.addAttribute("msg", "Hello,这是最简单的SpringMVC!!!");// 返回视图名称,会被视图解析器处理// 根据配置会在返回的字符串前加上前缀/WEB-INF/jsp/,后加上后缀.jspreturn "hello";}
}
  1. springmvc-servlet.xml:Spring MVC配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="..."> <!-- 这里是XML Schema位置定义 --><!-- 启用注解扫描,自动扫描包下的所有注解 --><!-- 会扫描指定包下的@Controller, @Service, @Repository, @Component等注解 --><context:component-scan base-package="nuc.ss.controller"/><!-- 配置静态资源处理,使Spring MVC不处理静态资源 --><!-- 例如.js,.css等文件会交由默认的servlet处理 --><mvc:default-servlet-handler /><!-- 启用Spring MVC注解驱动 --><!-- 自动注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --><!-- 支持@Controller、@RequestMapping等注解 --><mvc:annotation-driven /><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 配置视图路径前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 配置视图路径后缀 --><property name="suffix" value=".jsp" /></bean>
</beans>
  1. web.xml:Web应用配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"><!-- 配置Spring MVC的前端控制器 --><servlet><!-- servlet的名称 --><servlet-name>SpringMVC</servlet-name><!-- DispatcherServlet是Spring MVC的核心,负责接收请求并分发 --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置Spring MVC配置文件的位置 --><init-param><param-name>contextConfigLocation</param-name><!-- 指定配置文件位置 --><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!-- 配置servlet启动顺序,数字越小优先级越高 --><load-on-startup>1</load-on-startup></servlet><!-- 配置servlet映射 --><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- /表示拦截所有请求,不包括.jsp --><!-- /*表示拦截所有请求,包括.jsp --><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
  1. hello.jsp:视图文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Spring MVC Demo</title><style>/* 页面样式设置 */body {font-family: Arial, sans-serif;margin: 0;padding: 20px;background-color: #f0f2f5;display: flex;justify-content: center;  /* 水平居中 */align-items: center;      /* 垂直居中 */min-height: 100vh;}.card {background: yellowgreen;  /* 卡片背景色 */padding: 30px;border-radius: 8px;      /* 圆角边框 */box-shadow: 0 2px 4px rgba(0,0,0,0.1);  /* 阴影效果 */text-align: center;}.message {color: #cb2525;          /* 文字颜色 */font-size: 24px;}</style>
</head>
<body>
<div class="card"><div class="message">${msg}  <!-- 显示从控制器传来的消息 --></div>
</div>
</body>
</html>
  1. index.jsp 的详细注释
jspCopy<%-- Created by IntelliJ IDEA.  // IDE创建信息User: Administrator        // 创建用户Date: 2020/7/13 0013      // 创建日期Time: 14:21               // 创建时间To change this template use File | Settings | File Templates.  // 模板修改提示
--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 页面指令:设置内容类型和编码 --%>
<html><head><title>$Title$</title>  <%-- 页面标题占位符 --%></head><body>$END$  <%-- 内容占位符,表示编辑器光标默认位置 --%></body>
</html>

这是一个基础的 JSP 模板文件,主要包含:

文件信息注释

IDE 创建信息
创建者信息
创建时间
模板修改提示

页面指令

<%@ page … %> - JSP页面指令
contentType=“text/html” - 指定内容类型为HTML
charset=UTF-8 - 使用UTF-8字符编码
language=“java” - 使用Java作为脚本语言

占位符

T i t l e Title Title - 标题占位符
E N D END END - 内容占位符

这是一个最基础的页面模板,通常用作:

新建JSP页面的起点
快速创建页面的模板
统一项目中JSP页面的基本结构

  1. pom.xml

:Maven配置文件

<?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="..."><!-- 父项目配置 --><parent><artifactId>SpringMVC</artifactId><groupId>nuc.ss</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>springmvc-03-annotation</artifactId><!-- 构建配置 --><build><resources><!-- 配置Java源码目录下的资源文件处理 --><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><!-- 配置资源目录下的资源文件处理 --><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
</project>

7 springmvc-03-annotation.iml 的注释说明:

<?xml version="1.0" encoding="UTF-8"?>
<module version="4"><component name="FacetManager"><!-- Web模块配置 --><facet type="web" name="Web"><configuration><!-- Web应用描述符配置 --><descriptors><!-- web.xml的位置配置 --><deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" /></descriptors><!-- Web资源根目录配置 --><webroots><!-- 指定web目录为Web应用的根目录 --><root url="file://$MODULE_DIR$/web" relative="/" /></webroots><!-- 源代码根目录配置 --><sourceRoots><!-- Java源代码目录 --><root url="file://$MODULE_DIR$/src/main/java" /><!-- 资源文件目录 --><root url="file://$MODULE_DIR$/src/main/resources" /></sourceRoots></configuration></facet></component>
</module>

这些配置文件共同构成了一个基础的Spring MVC项目结构。主要的处理流程是:

  1. 用户请求首先被web.xml
  2. 中配置的DispatcherServlet接收
  3. 根据springmvc-servlet.xml的配置,请求被路由到对应的Controller
  4. Controller处理请求并返回视图名称
  5. 视图解析器解析视图名称,找到对应的JSP文件
  6. JSP文件被渲染后返回给用户

这样的结构提供了一个清晰的MVC分层,便于后续维护和扩展。

4 服务器设置 tomcat

在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/18f6ec45b4f14210addd1b6a8df7cfed.png

在这里插入图片描述

相关文章:

【SpringMVC】十分钟跑起来一个SpringMVC项目

目录标题 1 项目概述1.项目结构解析2. MVC项目的结构和每个组件的作用&#xff1a;3. 项目的工作流程&#xff1a;4 后期可以扩展的点&#xff1a;2.源码学习1. HelloController 类&#xff0c;Spring MVC控制器2 springmvc-servlet.xml - Spring MVC的主要配置文件3.web 目录 …...

LeetCode 热题 100 11. 盛最多水的容器

LeetCode 热题 100 | 11. 盛最多水的容器 大家好&#xff0c;今天我们来解决一道经典的算法题——盛最多水的容器。这道题在LeetCode上被标记为中等难度&#xff0c;要求我们找到两条垂线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。下面我将详细讲解解题思路…...

Web自动化之Selenium实战案例1:论文pdf自动下载

在上一篇文章中&#xff0c;我们介绍了Selenium的基础用法和一些常见技巧。今天&#xff0c;我们将通过中国科学&#xff1a;信息科学网站内当前目录论文下载这一实战案例来进一步展示Selenium的web自动化流程。 目录 中国科学&#xff1a;信息科学当期目录论文下载 1.网页内…...

在VSCode中接入deepseek

注册就送14元2000万tokens。 https://cloud.siliconflow.cn/i/rnbA6i6U各种大模型 下面介绍我是如如接入vscode的 左边生成一个key&#xff0c;呆会vscode要用&#xff0c;不然401. 打开vscod&#xff0c;电脑能上网。下插件。 下好要配置 点它一下。 要配置&#xff0c;全…...

CentOS停服后的替代选择:openEuler、Rocky Linux及其他系统的未来展望

CentOS停服后的替代选择&#xff1a;openEuler、Rocky Linux及其他系统的未来展望 引言CentOS停服的背景华为openEuler&#xff1a;面向未来的开源操作系统1. 简介2. 特点3. 发展趋势 Rocky Linux&#xff1a;CentOS的精神继承者1. 简介2. 特点3. 发展趋势 其他可选的替代系统1…...

vector的模拟实现

目录 一、构造和析构函数 二、插入删除访问迭代器 三、迭代器失效 四、拷贝构造和赋值 五、tip 一、构造和析构函数 namespace stn {template<class T>class vector{typedef T* iterator;public:vector():_start(nullptr);, _end(nullptr), _endofstorage(nullptr){…...

【高可用】keepalived的试用与学习笔记

版本日期修订人描述V1.02025/2/23nick huang创建文档 背景 最近&#xff0c;预研给现有的Nginx单点实例添加故障转移的功能&#xff0c;以备单实例故障时无法快速恢复。 本文记录Keepalived的学习笔记&#xff0c;供自己或同学日后参考。 Keepalived Keepalived是一个开源的…...

在Dify中实现联网检索功能(模拟DeepSeek)

跟着上一篇博客&#xff1a;Error response from daemon: Get “https://registry-1.docker.io/v2/“: request canceled while的解决办法-CSDN博客 DeepSeek发布之后&#xff0c;感觉联网检索功能变成标配了。这篇博客简单介绍一下怎么在Dify中配置初步的联网检索功能&#x…...

Deepseek-强化学习算法(通俗易懂版)

首先先贴一张Deepseek核心技术的梳理图&#xff1a; 上图详细了讲述了Deepseek主要在哪些阶段用了强化学习方法&#xff08;GRPO&#xff09; 1.GRPO算法 GRPO是一种用于提高语言模型推理能力的强化学习算法。它在DeepSeekMath论文中&#xff0c;在数学推理的背景下被提出。G…...

[展示]Webrtc NoiseSuppressor降噪模块嵌入式平台移植

最近在尝试把WebRtc的NoiseSuppressor模块移植到嵌入式平台&#xff0c;现在已经移植了&#xff0c;尝试了下效果&#xff0c;降噪效果很显著&#xff0c;噪声带被显著抑制了 降噪前&#xff1a; 降噪后&#xff1a;...

了解 RAG 第二部分:经典 RAG 的工作原理

在本系列的第一篇文章中&#xff0c;我们介绍了检索增强生成 (RAG) &#xff0c;解释了扩展传统大型语言模型 (LLM)功能的必要性。我们还简要概述了 RAG 的核心思想&#xff1a;从外部知识库检索上下文相关的信息&#xff0c;以确保 LLM 生成准确且最新的信息&#xff0c;而不会…...

剖析IO原理和零拷贝机制

目录 1 Linux的五种IO模型1.1 模型调用的函数1.1.1 recv函数1.1.2 select函数1.1.3 poll函数1.1.4 epoll函数1.1.5 sigaction函数 1.2 IO模型1.2.1 阻塞IO模型1.2.2 非阻塞IO模型1.2.3 IO复用模型1.2.4 信号驱动IO模型1.2.5 异步IO模型1.2.6 IO模型比较 2 Java的BIO、NIO、AIO2…...

【论文精读】MapTR:用于在线矢量化高精地图构建的结构化建模与学习

论文地址&#xff1a; MAPTR: STRUCTURED MODELING AND LEARNING FOR ONLINE VECTORIZED HD MAP CONSTRUCTION 源代码&#xff1a;MapTR 摘要 High-definition&#xff08;HD Map&#xff09;map为自动驾驶场景提供了丰富且精确的环境信息&#xff0c;是自动驾驶系统规划中不…...

云图库平台(五)——后端图片模块开发

目录 一、需求分析二、库表设计三、图片的处理如何实现图片的上传和下载创建图片的业务流程如何对图片进行解析 四、创建并使用对象存储五、后端操作对象存储初始化客户端通用能力类文档上传文件下载 一、需求分析 管理员功能&#xff1a; 图片的上传和创建&#xff1a;仅管理…...

Linux红帽:RHCSA认证知识讲解(一)RedHat背景与环境配置

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;一&#xff09;RedHat背景与环境配置 前言一、RedHat公司背景二、RedHat环境安装步骤三、windows使用远程工具连接环境并上传文件到redhat方法&#xff1a; 前言 在接下来的博客中&#xff0c;我们从基础开始将介绍红帽Linu…...

【Linux】基于UDP/TCP套接字编程与守护进程

目录 一、网路套接字编程 &#xff08;一&#xff09;基础概念 1、源IP地址与目的IP地址 2、端口号 3、TCP与UDP 4、网络字节序 &#xff08;二&#xff09;套接字编程接口 1、socket 常见API 2、sockaddr结构 &#xff08;三&#xff09;UDP套接字 1、UDP服务器创建…...

Linux CentOS 上 Ollama 的安装与部署:从入门到实践

Linux CentOS 上 Ollama 的安装与部署:从入门到实践 随着人工智能技术的快速发展,大语言模型(LLMs)的应用场景越来越广泛。Ollama 作为一个轻量级的 AI 模型管理工具,为开发者提供了便捷的模型部署和管理解决方案。本文将详细介绍如何在 Linux CentOS 系统上安装和部署 O…...

大数据学习之任务流调度系统Azkaban、Superset可视化系统

一.任务流调度系统Azkaban 1.课程介绍 2.为什么需要工作流调度系统 3.AZKABAN是什么 4.AZKABAN下载 5.制作安装包 6.tar包准备 7.MYSQL配置AZKABAN 8.配置EXECUTOR SERVER 9.配置WEBSERVER 10.单作业实战_yaml语言(今天稍晚更新) 11.单作业实战 12.多作业依赖实战 13.失败自动重…...

网络空间安全(2)应用程序安全

前言 应用程序安全&#xff08;Application Security&#xff0c;简称AppSec&#xff09;是一个综合性的概念&#xff0c;它涵盖了应用程序从开发到部署&#xff0c;再到后续维护的整个过程中的安全措施。 一、定义与重要性 定义&#xff1a;应用程序安全是指识别和修复应用程序…...

UDP、TCP的区别

UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议&#xff09;是两种常用的传输层协议&#xff0c;它们在数据传输方式、可靠性和应用场景等方面有显著区别。以下是它们的主要区别&#xff1a; ### 1. 连接方式 - **TCP**&#xff1a;面向连接。通信前…...

Linux 第二次脚本作业

1、需求&#xff1a;判断192.168.1.0/24网络中&#xff0c;当前在线的ip有哪些&#xff0c;并编写脚本打印出来。 2、设计一个 Shell 程序&#xff0c;在/userdata 目录下建立50个目录&#xff0c;即 user1~user50&#xff0c;并设置每个目录的权限&#xff0c;其中其他用户的权…...

高清下载油管视频到本地

下载工具并安装: yt-dlp官网地址&#xff1a; GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader ffmpeg官网地址&#xff1a; Download FFmpeg 注&#xff1a;记住为其添加环境变量 操作命令&#xff1a; 该指令表示以720p码率下载VIDEO_UR…...

Linux 命令大全完整版(07)

2. linux 系统设置命令 ulimit 功能说明&#xff1a;控制 shell 程序的资源。语法&#xff1a;ulimit [-aHS][-c <core 文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小…...

基于CentOS7安装kubesphere和Kubernetes并接入外部ES收集日志

一、修改所有节点主机名 主节点就修改成master hostnamectl set-hostname master 然后输入bash刷新当前主机名 工作节点1就修改成node1 hostnamectl set-hostname node1 然后输入bash刷新当前主机名 二、全部节点安装依赖并同步时间 yum -y install socat conntrack ebta…...

Javascript网页设计案例:通过PDFLib实现一款PDF分割工具,分割方式自定义-完整源代码,开箱即用

功能预览 一、工具简介 PDF 分割工具支持以下核心功能: 拖放或上传 PDF 文件:用户可以通过拖放或点击上传 PDF 文件。两种分割模式: 指定范围:用户可以指定起始页和结束页,提取特定范围的内容。固定间距:用户可以设置间隔页数(例如每 5 页分割一次),工具会自动完成分…...

高速差分信号的布线

差分信号如何在PCB上布线&#xff1f; 1.差分信号必须保证线间距相等&#xff0c;禁止打过孔或者放置元器件 2.差分信号必须打孔时&#xff0c;必须要保证伴随屏蔽地过孔&#xff08;缝合定位孔&#xff09;&#xff0c;减少信号干扰问题。 3.差分信号走线弯曲位置推荐&#…...

用openresty和lua实现壁纸投票功能

背景 之前做了一个随机壁纸接口&#xff0c;但是不知道大家喜欢对壁纸的喜好&#xff0c;所以干脆在实现一个投票功能&#xff0c;让用户给自己喜欢的壁纸进行投票。 原理说明 1.当访问http://demo.com/vote/时&#xff0c;会从/home/jobs/webs/imgs及子目录下获取图片列表&…...

智能测试执行 利用算法 利用图像识别、自然语言处理等技术实现自动化测试执行

以下将从Web应用和移动应用两个方面,给出利用图像识别、自然语言处理等技术实现自动化测试执行的实例,并附上部分代码示例。 Web应用自动化测试实例:模拟用户登录操作测试 需求理解 对于一个Web应用的登录功能进行自动化测试,我们可以结合自然语言处理理解测试用例描述,…...

AI学习之-阿里天池

阿里天池&#xff08;Tianchi&#xff09;是阿里巴巴集团旗下的一个数据科学与人工智能竞赛平台&#xff0c;致力于推动数据科学和人工智能的发展。在天池平台上&#xff0c;人们可以参与各种数据竞赛和挑战&#xff0c;解决实际问题&#xff0c;提升数据科学技能。天池平台提供…...

AGI觉醒假说的科学反驳:从数学根基到现实约束的深度解析

文章目录 引言:AGI觉醒论的核心迷思一、信息论视角:意识产生的熵约束1.1 香农熵的物理极限1.2 量子退相干的时间屏障二、数学根基:形式系统的自指困境2.1 哥德尔不完备定理的现代诠释三、概念解构:AGI觉醒假说的认知陷阱3.1 术语混淆的迷雾3.2 拟人化谬误的认知根源四、意识…...

SpringMVC的基本使用

controller标记一个类是控制器类 RequestMapping 进行路由映射可以是类也可以是方法&#xff0c;路由的/可以不加&#xff0c;但建议加上 1&#xff09;简单的映射返回一个hello RequestMapping("/m1")public String m1() { return "hello";} 2&#x…...

【漫话机器学习系列】103.学习曲线(Learning Curve)

学习曲线&#xff08;Learning Curve&#xff09;详解 1. 什么是学习曲线&#xff1f; 学习曲线&#xff08;Learning Curve&#xff09;是机器学习和深度学习领域中用于评估模型性能随训练过程变化的图示。它通常用于分析模型的学习能力、是否存在过拟合或欠拟合等问题。 从…...

ubuntu-24.04.1-desktop 中安装 QT6.7

ubuntu-24.04.1-desktop 中安装 QT6.7 1 环境准备1.1 安装 GCC 和必要的开发包:1.2 Xshell 连接 Ubuntu2 安装 Qt 和 Qt Creator:2.1 下载在线安装器2.2 在虚拟机中为文件添加可执行权限2.3 配置镜像地址运行安装器2.4 错误:libxcb-xinerama.so.0: cannot open shared objec…...

MQTT实现智能家居------2、写MQTT程序的思路

举个最简单的例子&#xff1a; 手机------服务器-------家具 我们这里只看手机和家具的客户端&#xff1a; 手机&#xff1a;1&#xff09;需要连接服务器 2&#xff09;需要发布指令给服务器到家里的家具 3&#xff09;接受来自于家里家具的异常状况 4&#xff09;保持心…...

【个人开发】deepspeed+Llama-factory 本地数据多卡Lora微调【完整教程】

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.3.1 zero-1微调2.2.3.2 zero-2微调2.2.3.3 zero-3微调2.2.3.4 单卡Lora微调 2.2.4 实验2.2.4.1 实验1&#xff1a;多GPU微调-zero12.2.4.2 实验2&#xff1a;…...

DeepSeek 从入门到精通:全面掌握 DeepSeek 的核心功能与应用

引言 DeepSeek 是一款功能强大的工具&#xff08;或平台/框架&#xff0c;具体根据实际定义&#xff09;&#xff0c;广泛应用于数据分析、人工智能、自动化任务等领域。无论你是初学者还是资深开发者&#xff0c;掌握 DeepSeek 的核心功能和应用场景都将为你的工作和学习带来…...

“国补”带火手机换新,出售旧手机应如何保护个人信息安全

在“国补”政策的推动下,手机换新热潮正席卷而来。“国补”以其诱人的补贴力度,成功激发了消费者更换手机的热情。无论是渴望体验最新技术的科技爱好者,还是对旧手机性能不满的普通用户,都纷纷投身到这场手机换新的浪潮之中。 随着大量消费者参与手机换新,二手手机市场迎来…...

驱动开发系列39 - Linux Graphics 3D 绘制流程(二)- 设置渲染管线

一:概述 Intel 的 Iris 驱动是 Mesa 中的 Gallium 驱动,主要用于 Intel Gen8+ GPU(Broadwell 及更新架构)。它负责与 i915 内核 DRM 驱动交互,并通过 Vulkan(ANV)、OpenGL(Iris Gallium)、或 OpenCL(Clover)来提供 3D 加速。在 Iris 驱动中,GPU Pipeline 设置 涉及…...

Windows使用docker部署fastgpt出现的一些问题

文章目录 Windows使用docker部署FastGPT出现的一些问题1.docker部署pg一直重启的问题2.重启MongoDB之后一直出现“Waiting for MongoDB to start...”3.oneapi启动不了failed to get gpt-3.5-turbo token encoder Windows使用docker部署FastGPT出现的一些问题 1.docker部署pg一…...

六十天前端强化训练之第一天HTML5语义化标签深度解析与博客搭建实战

欢迎来到编程星辰海的博客讲解 目录 一、语义化标签的核心价值 1.1 什么是语义化&#xff1f; 1.2 核心优势 二、语义标签详解与使用场景 2.1 布局容器标签 2.2 内容组织标签 三、博客结构搭建实战 3.1 完整HTML结构 3.2 核心结构解析 3.3 实现效果说明 四、学习要点…...

Oracle中补全时间的处理

在实际数据处理的过程中&#xff0c;存在日期不连续的问题&#xff0c;可能会导致数据传到前后端出现异常&#xff0c;为了避免这种问题&#xff0c;通常会从数据端进行日期不全的处理&#xff1a; 以下为补全年份的案例&#xff1a; with x as (select 开始年份 &#xff08;…...

PHP课程预约小程序源码

&#x1f4f1; 课程预约小程序&#xff1a;为您专属定制的便捷预约新体验 在这个快节奏的时代&#xff0c;我们深知每一位瑜伽爱好者、普拉提追随者以及培训机构管理者对高效、便捷服务的迫切需求。因此&#xff0c;我们匠心独运&#xff0c;推出了一款基于PHPUniApp框架开发的…...

(200): error: #29: expected an expression error: #40: expected an identifier

这是因为你乱加define导致你的define与变量名重复就会出现&#xff0c;他找不到错误只会抱着两个错...

一文讲解Redis中的常用命令

①、操作字符串的命令有&#xff1a; SET key value&#xff1a;设置键 key 的值为 value。GET key&#xff1a;获取键 key 的值。DEL key&#xff1a;删除键 key。INCR key&#xff1a;将键 key 存储的数值增一。DECR key&#xff1a;将键 key 存储的数值减一。 ②、操作列表…...

智能交通系统(Intelligent Transportation Systems):智慧城市中的交通革新

智能交通系统&#xff08;Intelligent Transportation Systems, ITS&#xff09;是利用先进的信息技术、通信技术、传感技术、计算机技术以及自动化技术等&#xff0c;来提升交通系统效率和安全性的一种交通管理方式。ITS通过收集和分析交通数据&#xff0c;智能化地调度、控制…...

Node.js 登录鉴权

目录 Session express-session 配置 express-session 函数 ts 要配置声明文件 express-session.d.ts express-session 使用 express-session 带角色 Token 什么是 JWT token jsonwebtoken 使用 jsonwebtoken 带角色 Session express 使用 express-session 管理会话&…...

EPSON L3118彩色喷墨打印机灯全闪故障维修一例

一台EPSON L3118彩色喷墨打印机&#xff0c;故障时开机灯全闪烁&#xff0c;一般来说这种故障问题都不太大&#xff0c;要么就是打印机内部卡纸了&#xff0c;要么就是传感器故障&#xff0c;一般情况下卡纸的问题比较多… …&#xff1b; 但是遇到一用户又菜又爱玩&#xff0c…...

在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键

在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键&#xff0c;主要涉及到两个方面&#xff1a;确保 F1 键作为标准功能键工作 和 在 Snipaste 中设置 F1 为快捷键。 因为 Mac 默认情况下&#xff0c;F1-F12 键通常用作控制屏幕亮度、音量等系统功能的快捷键…...

基于AT89C51单片机的教室智能照明控制系统

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90419908?spm1001.2014.3001.5501 C16 部分参考设计如下&#xff1a; 摘 要 本项目的智能教室灯光控制系统通过合理的软硬件设计&#xff0c;有效地提升了教室…...

JavaSE学习笔记25-反射(reflection)

反射 在Java中&#xff0c;反射&#xff08;Reflection&#xff09; 是一种强大的机制&#xff0c;允许程序在运行时检查和操作类、方法、字段等信息。通过反射&#xff0c;可以动态地创建对象、调用方法、访问字段&#xff0c;甚至修改私有成员。反射的核心类是 java.lang.re…...