【全栈开发】从0开始搭建一个图书管理系统【一】框架搭建

【全栈开发】从0开始搭建一个图书管理系统【一】框架搭建

前言

现在流行降本增笑,也就是不但每个人都要有事干不能闲着,更重要的是每个人都要通过报功的方式做到平日的各项工作异常饱和,实现1.5人的支出干2人的活计。单纯的数据库开发【肤浅的Sql Boy】竞争异常激烈早就内卷的吃不饱饭了,而随着各家云厂商的倒贴钱推动上云计算资质不那么聪颖的大数据平台开发人员也岌岌可危,前端早就没有单独的岗位了,也就剩纯后端开发还能喝口汤,再加上近期DeepSeek等工具的流行,只能干单一工作的单细胞人员好日子还在后头。。。

历史的车轮总是滚滚向前,科学技术的进步是领导阶级们的红利不是普通员工的。。。这就要求普通员工们看清形势放弃幻想,加强自我学习实现与时俱进,能胜任至少2个工种,才能不被K8S是常识且DevOPs盛行的行业淘汰。

笔者将以图书管理系统抛砖引玉,展示大数据平台开发学徒工们需要的后端及前端能力【不要问我为神马是图书管理系统,有的业务不能讲的太明白!!!】。2025年,一个精通大数据平台开发及数仓开发,精通离线跑批脚本性能调优,可兼任后端开发、简单的前端开发、压力/功能/接口测试的资深大数据学徒工,20K以内还是没那么艰难的。

选型

现在绝大多数项目已经不搞传统C/S了,清一色B/S,Spring已经成为事实上的标准,大数据平台开发学徒工普遍有Java SE基础,故笔者以Spring Boot3+Vue3为主要框架进行开发。那么很多组件的选择也就是不必解释的常识了:

JDK:>=17

ORM:MyBatis/MyBatis-plus

DB:MySQL>=8/MariaDB

安全:Spring Security

调度:XXL Job

如果规模体量变大,需要改微服务及容器编排,那就是另一回事了。。。缺失的依赖可以后续慢慢集成,大家都是资深学徒工了要有触类旁通的悟性。

初始化SpringBoot3

构建后端首先要到官网查看下最新版本及推荐版本:

https://start.spring.io/

截至20250220,推荐的是3.4.2。

在这里插入图片描述

可以在这里选择要集成的依赖,也可以后续自行修改pom.xml。笔者选择一个比较稳定的LTS版本。

生成后导入,配置基本的Maven,等待拉取基础的依赖。

依赖POM

经过了好久的排错,终于选好了兼容的依赖版本,真是不容易。。。

主POM

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><modules><module>library-admin</module><module>library-common</module><module>library-logging</module><module>library-system</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.zhiyong</groupId><artifactId>library</artifactId><version>0.0.1-SNAPSHOT</version><name>library</name><description>Demo project for Spring Boot3</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><maven.test.skip>true</maven.test.skip><fastjson.version>1.2.83</fastjson.version><log4j2.version>2.20.0</log4j2.version><disruptor.version>3.4.2</disruptor.version><mybatis-plus.version>3.5.10</mybatis-plus.version><druid.version>1.2.23</druid.version><mysql-connector.version>8.0.33</mysql-connector.version><hutool.version>5.8.11</hutool.version><mapstruct.version>1.5.5.Final</mapstruct.version><xxl.job.version>2.4.0</xxl.job.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-autoconfigure</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version></dependency><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${disruptor.version}</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version><exclusions><exclusion><artifactId>mybatis-spring</artifactId><groupId>org.mybatis</groupId></exclusion></exclusions></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.4</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>${mapstruct.version}</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${mapstruct.version}</version><scope>provided</scope></dependency><dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>${xxl.job.version}</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>com.zhiyong</groupId><artifactId>library-admin</artifactId><version>${version}</version></dependency><dependency><groupId>com.zhiyong</groupId><artifactId>library-common</artifactId><version>${version}</version></dependency><dependency><groupId>com.zhiyong</groupId><artifactId>library-system</artifactId><version>${version}</version></dependency><dependency><groupId>com.zhiyong</groupId><artifactId>library-logging</artifactId><version>${version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>${druid.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql-connector.version}</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency></dependencies></dependencyManagement></project>

也就是说子模块有4个:

library-admin
library-common
library-logging
library-system

不懂的可以参照若依。。。

library-admin

这部分主要是放置启动类、打包配置、主要的业务VO等。

<?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>library</artifactId><groupId>com.zhiyong</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>library-admin</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>com.zhiyong</groupId><artifactId>library-common</artifactId></dependency><dependency><groupId>com.zhiyong</groupId><artifactId>library-system</artifactId></dependency><dependency><groupId>com.zhiyong</groupId><artifactId>library-logging</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><dependency><groupId>cn.xuyanwu</groupId><artifactId>spring-file-storage</artifactId><version>1.0.3</version><scope>compile</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId></dependency></dependencies><profiles><profile><id>dev</id><properties><package.environment>dev</package.environment></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>test</id><properties><package.environment>test</package.environment></properties></profile><profile><id>prod</id><properties><package.environment>prod</package.environment></properties></profile></profiles><build><finalName>library-spring-boot3</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><finalName>${project.build.finalName}-${project.version}</finalName></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals><configuration><outputDirectory>ci</outputDirectory><executable>true</executable></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skipTests>true</skipTests></configuration></plugin></plugins></build></project>

这样后续就会打出Jar包而不是传统的War包。容器化部署时要更方便些。它要依赖其它所有子模块!!!

library-common

这里主要是放公用的工具类、全局异常/自定义异常类等,以便别的模块复用:

<?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>library</artifactId><groupId>com.zhiyong</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>library-common</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency><dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>2.0.24</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>18.0</version></dependency><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.4.0</version></dependency><dependency><groupId>nl.basjes.parse.useragent</groupId><artifactId>yauaa</artifactId><version>6.11</version></dependency></dependencies></project>

这样就搭建好了一个常见的公用模块依赖。它无需依赖其它子模块,但是其它子模块都要依赖它。

library-logging

这个模块主要记录系统的日志:

<?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>library</artifactId><groupId>com.zhiyong</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>library-logging</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>com.zhiyong</groupId><artifactId>library-common</artifactId></dependency></dependencies></project>

依赖公用的子模块即可。

library-system

<?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>library</artifactId><groupId>com.zhiyong</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>library-system</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>com.zhiyong</groupId><artifactId>library-common</artifactId></dependency><dependency><groupId>com.zhiyong</groupId><artifactId>library-logging</artifactId></dependency><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.5</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.0</version></dependency><dependency><groupId>cn.xuyanwu</groupId><artifactId>spring-file-storage</artifactId><version>1.0.3</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.16.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency></dependencies></project>

这里放一些系统功能。

主模块

Main入口

调整到library-admin模块下:

package com.zhiyong.admin;import cn.xuyanwu.spring.file.storage.spring.EnableFileStorage;
import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication(scanBasePackages = {"com.zhiyong.*"})
@MapperScan("com.zhiyong.**.mapper")
@EnableFileStorage
//@EnableAutoConfiguration(exclude={DruidDataSourceAutoConfigure.class})
public class LibraryApplication {public static void main(String[] args) {SpringApplication.run(LibraryApplication.class, args);}}

主配置文件

spring:application:name: libraryprofiles:active: devservlet:multipart:enabled: truemax-file-size: 50MBmax-request-size: 50MBmvc:hiddenmethod:filter:enabled: truejackson:time-zone: GMT+8date-format: yyyy-MM-dd HH:mm:ssserver:servlet:context-path: '/api/library'mybatis-plus:global-config:banner: falsedb-config:id-type: autotable-underline: truemapper-locations: classpath:mapper/*.xmlconfiguration:use-generated-keys: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImplcall-setters-on-nulls: truesms:accessKeyId:accessKeySecret:regionId: cn-hangzhousignName:templateCode:jwt:tokenHeader: Authorizationkey: library-secrettokenHead: 'Bearer '

这样就在application.yml指定了通用配置。为了让层次更清晰,不建议使用propertiesIdea自己可以调整好缩进,不会有多一个空格少一个空格的问题。

dev配置文件

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverdruid:url: jdbc:mysql://127.0.0.1:3306/library_1?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=trueusername: rootpassword: xxxxxxinitial-size: 5min-idle: 15max-active: 30remove-abandoned-timeout: 180max-wait: 300000time-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 300000max-evictable-idle-time-millis: 900000stat-view-servlet:enabled: trueloginUsername: adminloginPassword: xxxxxxallow:web-stat-filter:enabled: truesession-stat-enable: truesession-stat-max-count: 1000url-pattern: /*filters: stat,wall,slf4jfilter:stat:enabled: truedb-type: mysqllog-slow-sql: trueslow-sql-millis: 2000file-storage:default-platform: minio-1thumbnail-suffix: ".min.jpg"local-plus:- platform: local-plus-1enable-storage: trueenable-access: truedomain: "http://127.0.0.1:xxxx/api/library/"base-path: library/uploadFile/path-patterns: /api/library/**storage-path: /minio:- platform: minio-1enable-storage: trueaccess-key: xxxxxxxxxsecret-key: xxxxxxxxxxxxxxxxxxxxxend-point: http://xx.xx.xx.xx:9000bucket-name: librarydomain: http://xx.xx.xx.xx:9000/library/base-path:aliyun-oss:- platform: aliyun-oss-1enable-storage: trueaccess-key:secret-key:end-point: oss-cn-hangzhou.aliyuncs.combucket-name: library-oss-picdomain: https://library-oss-pic.oss-cn-hangzhou.aliyuncs.com/base-path:data:redis:host: 127.0.0.1port: 6379database: 0timeout: 1800000password:lettuce:pool:max-wait: -1max-idle: 32min-idle: 5max-active: 1000server:port: xxxx

这样就可以覆盖已有配置为开发环境配置。

验证

由于已经解决了依赖版本冲突的问题,在建好所需的数据库后,可以启动验证:

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v3.4.2)2025-02-27 22:06:32 2405  [background-preinit] [INFO ] org.hibernate.validator.internal.util.Version [] - HV000001: Hibernate Validator 8.0.2.Final
2025-02-27 22:06:32 2457  [main] [INFO ] com.zhiyong.admin.LibraryApplication [] - Starting LibraryApplication using Java 17.0.7 with PID 38052 (E:\study\library\proj\library-admin\target\classes started by zhiyong in E:\study\library\proj)
2025-02-27 22:06:32 2461  [main] [INFO ] com.zhiyong.admin.LibraryApplication [] - The following 1 profile is active: "dev"
2025-02-27 22:06:34 4355  [main] [INFO ] org.springframework.data.repository.config.RepositoryConfigurationDelegate [] - Multiple Spring Data modules found, entering strict repository configuration mode
2025-02-27 22:06:34 4358  [main] [INFO ] org.springframework.data.repository.config.RepositoryConfigurationDelegate [] - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2025-02-27 22:06:34 4515  [main] [INFO ] org.springframework.data.repository.config.RepositoryConfigurationDelegate [] - Finished Spring Data repository scanning in 135 ms. Found 0 Redis repository interfaces.
2025-02-27 22:06:35 5819  [main] [INFO ] org.springframework.boot.web.embedded.tomcat.TomcatWebServer [] - Tomcat initialized with port 8888 (http)
2025-02-27 22:06:35 5839  [main] [INFO ] org.apache.coyote.http11.Http11NioProtocol [] - Initializing ProtocolHandler ["http-nio-8888"]
2025-02-27 22:06:35 5841  [main] [INFO ] org.apache.catalina.core.StandardService [] - Starting service [Tomcat]
2025-02-27 22:06:35 5842  [main] [INFO ] org.apache.catalina.core.StandardEngine [] - Starting Servlet engine: [Apache Tomcat/10.1.34]
2025-02-27 22:06:35 5993  [main] [INFO ] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api/library] [] - Initializing Spring embedded WebApplicationContext
2025-02-27 22:06:35 5993  [main] [INFO ] org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext [] - Root WebApplicationContext: initialization completed in 3213 ms
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2025-02-27 22:06:35 6131  [main] [INFO ] com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure [] - Init DruidDataSource
2025-02-27 22:06:36 6944  [main] [INFO ] com.alibaba.druid.pool.DruidDataSource [] - {dataSource-1} inited
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
Get /172.30.16.1 network interface 
Get network interface info: name:eth23 (Hyper-V Virtual Ethernet Adapter)
Initialization Sequence datacenterId:14 workerId:5
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@41581c3f] was not registered for synchronization because synchronization is not active
JDBC Connection [ConnectionProxyImpl{connectedTime=2025-02-27 22:06:36.613, closeCount=0, lastValidateTimeMillis=2025-02-27 22:06:36.615}] will not be managed by Spring

此时环境就绪,再验证下Druid连接池:

http://localhost:xxxx/api/library/druid/datasource.html

在这里插入图片描述

当看到熟悉的监控界面时,说明后端环境及数据库环境就绪!!!接下来就可以进行后端开发!!!

转载请注明出处:https://lizhiyong.blog.csdn.net/article/details/145915249

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署Flink1.20.1

1、设置环境变量 export JAVA_HOME/cluster/jdk export CLASSPATH.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarp #export HIVE_HOME/cluster/hive export MYSQL_HOME/cluster/mysql export HADOOP_HOME/cluster/hadoop3 export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop …

【超详细】神经网络的可视化解释

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

深入了解 Python 中的 MRO(方法解析顺序)

文章目录 深入了解 Python 中的 MRO&#xff08;方法解析顺序&#xff09;什么是 MRO&#xff1f;如何计算 MRO&#xff1f;C3 算法的合并规则C3 算法的合并步骤示例&#xff1a;合并过程解析 MRO 解析失败的场景使用 mro() 方法查看 MRO示例 1&#xff1a;基本用法 菱形继承与…

数字化赋能:制造业如何突破低效生产的瓶颈?

随着全球经济的快速发展与市场需求的变化&#xff0c;制造业面临着前所未有的压力与挑战。生产效率、资源管理、品质控制、成本控制等方面的问题日益突出&#xff0c;尤其是低效生产成为了许多制造企业亟待解决的瓶颈。在这种背景下&#xff0c;数字化转型成为提升制造业效率的…

Element-Plus,使用 El-form中 的 scroll-to-error 没有效果问题记录

因业务需要表单组件中嵌套着表格列表&#xff0c;内容比较多&#xff1b; 所以需要表单校验不通过时&#xff0c;自动定位到不通过的节点&#xff1b; 但发现这个像是没有起到效果一样&#xff0c;后面就是排查的思路了&#xff1a; 容器高度问题&#xff1a;如果表单容器的高度…

基于Javase的停车场收费管理系统

基于Javase的停车场收费管理系统 停车场管理系统开发文档 项目概述 1.1 项目背景 随着现代化城市的不断发展&#xff0c;车辆数量不断增加&#xff0c;停车难问题也日益突出。为了更好地管理停车场资 源&#xff0c;提升停车效率&#xff0c;需要一个基于Java SE的停车场管理…

网络协议 HTTP、HTTPS、HTTP/1.1、HTTP/2 对比分析

1. 基本定义 HTTP&#xff08;HyperText Transfer Protocol&#xff09; 应用层协议&#xff0c;用于客户端与服务器之间的数据传输&#xff08;默认端口 80&#xff09;。 HTTP/1.0&#xff1a;早期版本&#xff0c;每个请求需单独建立 TCP 连接&#xff0c;效率低。HTTP/1.1&…

DeepSeek掘金——调用DeepSeek API接口 实现智能数据挖掘与分析

调用DeepSeek API接口:实现智能数据挖掘与分析 在当今数据驱动的时代,企业和开发者越来越依赖高效的数据挖掘与分析工具来获取有价值的洞察。DeepSeek作为一款先进的智能数据挖掘平台,提供了强大的API接口,帮助用户轻松集成其功能到自己的应用中。本文将详细介绍如何调用D…

LabVIEW同步数据采集功能

VI通过使用数据采集&#xff08;DAQ&#xff09;硬件系统&#xff0c;进行多通道同步采集&#xff0c;实时获取模拟信号数据。它利用外部时钟信号触发数据采集&#xff0c;支持连续采样模式&#xff0c;并将采集到的数据实时显示在波形图上&#xff0c;方便用户进行数据监控和分…

SpringDataJPA使用deleteAllInBatch方法逻辑删除失效

概述 在使用Spring Boot JPA时&#xff0c;执行批量删除操作时&#xff0c;遇到逻辑删除失效的问题。具体而言&#xff0c;当使用deleteAllInBatch方法时&#xff0c;数据会被物理删除&#xff0c;而不是进行逻辑删除&#xff1b;但是当使用deleteAll时&#xff0c;逻辑删除操…

【Docker】使用Docker搭建-MySQL数据库服务

零、更换Docker镜像源 因为国内现在封锁了Docker默认拉取镜像的站点&#xff08;DockerHub&#xff09;&#xff0c;而且国内大部分Docker镜像站已全部下线&#xff0c;导致现在很多朋友在拉取镜像的时候会出现无法拉取的现象&#xff0c;这时候就需要进行更换Docker镜像源。 可…

人类驾驶的人脑两种判断模式(反射和预判)-->自动驾驶两种AI模式

一种模式是直觉模式&#xff0c;判断基于条件反射&#xff0c;视觉感知 触发到 直接条件反射&#xff08;从经历中沉淀形成的神经信息闭环&#xff09;&#xff0c;类似现在自动驾驶技术的传统AI模式&#xff1b;另一种是图式推理模式&#xff0c;判断是基于预判&#xff0c;人…

3.17 AI Agent 场景革命:解锁企业级应用的 15 个黄金赛道

AI Agent 场景革命:解锁企业级应用的 15 个黄金赛道 关键词:AI Agent 应用场景, 企业级智能体案例, 多模态 Agent 实现, 工具链自动化, 智能决策系统 1. 企业级 Agent 场景分类图谱 #mermaid-svg-UjUmmToEKigfdlFf {font-family:"trebuchet ms",verdana,arial,san…

Docker基础-常见命令

docker images -查看所有的本地镜像。 docker pull -把远端镜像拉取到本地。 docker rmi -删除镜像。 docker push -推到镜像仓库。 docker run -创建并运行容器&#xff08;自动化&#xff0c;如果发现镜像不存在会先去拉取&#xff0c; 拉取完了以后再去自动创建容器&am…

TinyEngine v2.2版本发布:支持页面嵌套路由,提升多层级路由管理能力开发分支调整

2025年春节假期已过&#xff0c;大家都带着慢慢的活力回到了工作岗位。为了让大家在新的一年继续感受到 Tiny Engine 的成长与变化&#xff0c;我们很高兴地宣布&#xff1a;TinyEngine v2.2版本正式发布&#xff01;本次更新带来了重要的功能增强------页面支持嵌套路由&#…

LSTM长短期记忆网络-原理分析

1 简介 概念 LSTM&#xff08;Long Short-Term Memory&#xff09;也称为长短期记忆网络&#xff0c;是一种改进的循环神经网络&#xff08;RNN&#xff09;&#xff0c;专门设计用于解决传统RNN的梯度消失问题和长程依赖问题。LSTM通过引入门机制和细胞状态&#xff0c;能够更…

SQL Server 中遇到的常见问题集

SQL Server 中遇到的常见问题集 问题一&#xff1a; 无法创建关系“FK_Research_Teacher”。 ALTER TABLE 语句与 FOREIGN KEY 约束"FK_Research_Teacher"冲突 解决方法&#xff1a; 外键表中的数据主键表中是有的&#xff0c;并且不能删除主外键表中数据 1&…

神经网络中感受野的概念和作用

在神经网络中&#xff0c;感受野&#xff08;Receptive Field&#xff09;是指某个神经单元&#xff08;神经元或者卷积核&#xff09;关注的输入特征区域的大小。它决定了神经网络对输入数据的特定区域的感知能力。 感受野的形成过程 在卷积神经网络中&#xff0c;卷积层是感受…

unreal engine gameplay abiliity 获取ability的cooldown剩余时间

unreal engine gameplay abiliity 获取ability的cooldown 版本 5.4.4 参考 测试代码 if (HasAuthority() && AbilitySystemComponent){TArray<FGameplayAbilitySpecHandle> OutAbilityHandles;AbilitySystemComponent->GetAllAbilities(OutAbilityHandles…

【leetcode hot 100 42】接雨水

错误解法&#xff1a;若height[left]>height[right]则代表有坑 class Solution {public int trap(int[] height) {int left 0;int area 0;while(left<height.length-1){// 找坑int right left1;while(right<height.length-1 && height[left]>height[ri…