【慕课网wiki项目学习笔记01】Spring Boot 项目搭建
2-2 新建SpringBoot项目
一、创建SpringBoot项目
(1)在SpringBoot官网创建
(2.1)在 IDEA 中创建


Group:公司名
Artifact:项目名


创建成功后开始下载Maven依赖(选择右下角的Import Changes)

问题:idea现在只能创建最少jdk17,不能创建java8
原因:Spring Boot 官方不再支持 Spring Boot 的 2.x 版本了,之后全力维护 3.x;而 Spring Boot 3.x 对 JDK 版本的最低要求是 17!
解决方法:不要用官方提供的 Spring Initializr 来初始化项目了,我们可以使用阿里云提供的脚手架镜像(https://start.aliyun.com/)
(2.2)在 IDEA 中使用阿里云脚手架创建
只需修改Initializer Service URL:

这种方式可能会报错:
(3)使用阿里云脚手架创建


下载下来是一个zip文件,解压后用IDEA打开
二、SpringBoot项目结构
|- wiki:# 项目特有文件,提交代码的时候不用提交 |- .idea |- wiki.iml# 如果没有maven的话会根据其中的配置自动下载,但是一般我们都会用自己提前下载好的maven,所以这个目录基本用不到|- .mvn |- wrapper |- mvnw linux命令|- mvnw.cmd windows命令|- src 所有的源码都写在这个目录下|- main|- java 所有的java类都写在这个目录下|- com.jiawa.wiki|- WikiApplication.java 启动类,需要加@SpringBootApplication注解|- resources 配置信息|- static 一般用来放前端的css js等,用不到,可以直接删了|- templates SpringBoot官方推荐的前端是用Thymeleaf,但我们是前后端分离,用Vue,用不到,可以直接删了|- application.properties 配置文件|- test 单元测试|- .gitignore 设置在git提交时忽略的文件|- HELP.md 就是readme|- pom.xml 配置maven依赖
三、启动SpringBoot项目
执行WikiApplication.java的main方法:

默认使用SpringBoot自带的Tomcat服务器启动,因此可以直接运行。
![]()
2-3 项目初始配置
一、编码配置
将所有文件的编码改为UTF-8


二、JDK配置

三、Maven配置
(1)IDEA 自带一个maven,其路径为:
E:\Program Files\IntelliJ IDEA 2019.2.3\plugins\maven\lib\maven3# E:\Program Files\IntelliJ IDEA 2019.2.3 是我的IDEA安装目录
(2)修改maven的配置文件
maven的配置文件的路径为:
E:\Program Files\IntelliJ IDEA 2019.2.3\plugins\maven\lib\maven3\conf\settings.xml
将其修改为下面的内容(配置阿里云镜像):
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><!--localRepository要修改为自己电脑上的maven仓库的文件目录--><localRepository>C:\Users\甲蛙\.m2\repository</localRepository><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central</url></mirror><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public</url><mirrorOf>central</mirrorOf></mirror><mirror><id>central</id><name>Maven Repository Switchboard</name><url>http://repo1.maven.org/maven2</url><mirrorOf>central</mirrorOf></mirror><mirror><id>repo2</id><mirrorOf>central</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://repo2.maven.org/maven2</url></mirror><mirror><id>ibiblio</id><mirrorOf>central</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url></mirror><mirror><id>jboss-public-repository-group</id><mirrorOf>central</mirrorOf><name>JBoss Public Repository Group</name><url>http://repository.jboss.org/nexus/content/groups/public</url></mirror><mirror><id>google-maven-central</id><name>Google Maven Central</name><url>https://maven-central.storage.googleapis.com</url><mirrorOf>central</mirrorOf></mirror><!-- 中央仓库在中国的镜像 --><mirror><id>maven.net.cn</id><name>one of the central mirrors in china</name><url>http://maven.net.cn/content/groups/public</url><mirrorOf>central</mirrorOf></mirror></mirrors><profiles><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile><profile><id>repository_set</id><repositories><repository><snapshots><enabled>false</enabled></snapshots><id>public</id><name>Public Repository</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></repository></repositories><pluginRepositories><pluginRepository><releases><updatePolicy>never</updatePolicy></releases><snapshots><enabled>false</enabled></snapshots><id>public</id><name>Public Repository</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></pluginRepository></pluginRepositories></profile></profiles></settings>
四、Git配置
(1)启用版本控制


(2)文件名的颜色表示该文件是否被Git管理
-
红色:还没交给Git管理
-
绿色:Git已管理,还未提交
-
蓝色:作过修改,还未提交
-
灰色:文件删除,还未提交(撤销删除操作,右键 -> Revert)
-
黑色:已经提交的文件
(3)第一次提交
将还没交给Git管理的文件都交给Git管理(git add)

将已被Git管理,还未提交的文件进行提交(git commit)


(4)可以通过.gitignore来忽略文件,本地工作空间相关的文件不要提交,比如:.idea, target, *.iml
如果不是代码的问题,是本地项目配置的问题,有一个超级好用的大招:
关闭项目
删除根目录下的.idea文件夹(这个文件里面放的都是项目的配置信息)
重新打开项目
2-4 代码关联远程仓库
访问远程仓库需要身份验证,SSH密钥可以提供一种安全的身份验证机制,使得开发者可以无需每次都输入用户名和密码就能访问远程Git仓库。我们需要先在本地计算机上生成一对私钥和公钥,然后再将公钥添加到Gitee、GitHub或GitLab等平台上的账户设置中。
(1)获取SSH公钥
方式一:Git GUI


方式二:命令行
在git-bash中输入:
ssh-keygen -t rsa -C "自己注册码云时的邮箱"
# 之后提示需要输入的信息都按回车键(使用默认选项)
看到如下界面则就表示操作成功了:

SSH公钥文件路径:C:\Users\你的用户名\.ssh\id_rsa.pub
(2)在代码托管平台中添加SSH公钥
以码云Gitee为例

(3)在代码托管平台中新建一个仓库

(4)将本地仓库与远程仓库进行关联
创建好仓库以后会出现一个代码提示页面:

-
第一个红色框就是在使用SSH访问远程仓库时的远程仓库的地址,之后我们在使用git remote命令添加远程仓库时,会给这个地址起一个别名(比如origin),这样在之后需要用到这个地址时就不用输入这么一串了。
-
如果本地还没有创建仓库,就执行 “创建 git 仓库” 部分的指令
-
如果已经有一个本地仓库了,就执行 “已有仓库?” 部分的指令
Step1: 使用git remote命令添加远程仓库
# 这行代码的意思是添加一个远程仓库git@gitee.com:ZhuYuxi200019/jiawa_wiki.git,并给它起名为origin,以后就用origin来指代这个远程仓库
$ git remote add origin git@gitee.com:ZhuYuxi200019/jiawa_wiki.git# 查看已添加的远程仓库
$ git remote -v
Step2: 使用git push命令将本地代码提交到远程仓库
$ git push -u origin "master"Enumerating objects: 26, done.
Counting objects: 100% (26/26), done.
Delta compression using up to 12 threads
Compressing objects: 100% (17/17), done.
Writing objects: 100% (26/26), 3.87 KiB | 991.00 KiB/s, done.
Total 26 (delta 2), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag b045baaa
To gitee.com:ZhuYuxi200019/jiawa_wiki.git* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
之后如果要从远程仓库下载代码就用git clone命令
$ git clone git@gitee.com:ZhuYuxi200019/jiawa_wiki.git
2-5 启动日志优化
默认日志样式:
"E:\Program Files\Java\jdk1.8.0_221\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:E:\Program Files\IntelliJ IDEA 2019.2.3\lib\idea_rt.jar=57470:E:\Program Files\IntelliJ IDEA 2019.2.3\bin" -Dfile.encoding=UTF-8 -classpath "E:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;E:\zhuyuxi333\IdeaProjects\wiki\target\classes;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-web\2.4.2\spring-boot-starter-web-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter\2.4.2\spring-boot-starter-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot\2.4.2\spring-boot-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-autoconfigure\2.4.2\spring-boot-autoconfigure-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-logging\2.4.2\spring-boot-starter-logging-2.4.2.jar;E:\Program Files\MavenRepository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\Program Files\MavenRepository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;E:\Program Files\MavenRepository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;E:\Program Files\MavenRepository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;E:\Program Files\MavenRepository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;E:\Program Files\MavenRepository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;E:\Program Files\MavenRepository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-json\2.4.2\spring-boot-starter-json-2.4.2.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-tomcat\2.4.2\spring-boot-starter-tomcat-2.4.2.jar;E:\Program Files\MavenRepository\org\apache\tomcat\embed\tomcat-embed-core\9.0.41\tomcat-embed-core-9.0.41.jar;E:\Program Files\MavenRepository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;E:\Program Files\MavenRepository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.41\tomcat-embed-websocket-9.0.41.jar;E:\Program Files\MavenRepository\org\springframework\spring-web\5.3.3\spring-web-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-beans\5.3.3\spring-beans-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-webmvc\5.3.3\spring-webmvc-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-aop\5.3.3\spring-aop-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-context\5.3.3\spring-context-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-expression\5.3.3\spring-expression-5.3.3.jar;E:\Program Files\MavenRepository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;E:\Program Files\MavenRepository\org\springframework\spring-core\5.3.3\spring-core-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-jcl\5.3.3\spring-jcl-5.3.3.jar" com.zhuyuxi333.wiki.WikiApplication. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.4.2)2025-03-02 16:35:14.399 INFO 6024 --- [ main] com.zhuyuxi333.wiki.WikiApplication : Starting WikiApplication using Java 1.8.0_221 on DESKTOP-1H3OOAD with PID 6024 (E:\zhuyuxi333\IdeaProjects\wiki\target\classes started by zxx in E:\zhuyuxi333\IdeaProjects\wiki)
2025-03-02 16:35:14.412 INFO 6024 --- [ main] com.zhuyuxi333.wiki.WikiApplication : No active profile set, falling back to default profiles: default
2025-03-02 16:35:15.345 INFO 6024 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2025-03-02 16:35:15.371 INFO 6024 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2025-03-02 16:35:15.371 INFO 6024 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.41]
2025-03-02 16:35:15.506 INFO 6024 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2025-03-02 16:35:15.506 INFO 6024 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 983 ms
2025-03-02 16:35:15.651 INFO 6024 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2025-03-02 16:35:15.712 INFO 6024 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]
2025-03-02 16:35:15.792 INFO 6024 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2025-03-02 16:35:15.807 INFO 6024 --- [ main] com.zhuyuxi333.wiki.WikiApplication : Started WikiApplication in 2.094 seconds (JVM running for 4.624)
(1)修改logback日志样式

logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 如果是Mac,要将路径修改为.\log --><property name="PATH" value="./log"></property><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- 这一行原始的内容为: --><!-- <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%-50logger{50}:%-4line) %thread %msg%n</Pattern>--><Pattern>%d{ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %msg%n</Pattern></encoder></appender><appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${PATH}/trace.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><layout><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern></layout></appender><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${PATH}/error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><layout><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern></layout><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><root level="ERROR"><appender-ref ref="ERROR_FILE" /></root><root level="TRACE"><appender-ref ref="TRACE_FILE" /></root><root level="INFO"><appender-ref ref="STDOUT" /></root>
</configuration>
定义日志样式的代码
<Pattern>%d{ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %msg%n</Pattern>
-
<Pattern>标签用于指定日志信息的输出格式 -
%d{ss.SSS}-
%d是日期时间转换符,用于输出日志事件发生的时间。 -
{ss.SSS}是日期时间的格式说明。ss表示秒,SSS表示毫秒,所以这个格式会输出日志事件发生时的秒和毫秒部分,例如05.123。
-
-
%highlight(%-5level)-
%level是日志级别转换符,用于输出日志事件的级别(如DEBUG、INFO、WARN、ERROR等)。 -
%-5level中的-表示左对齐,5表示输出的宽度为 5 个字符。如果日志级别名称长度小于 5 个字符,会在右侧填充空格。 -
%highlight(...)是 Logback 提供的一个高亮转换符,用于对包裹的内容进行高亮显示,具体的高亮效果取决于日志输出的终端支持情况。
-
-
%blue(%-30logger{30}:%-4line)-
%logger是日志记录器名称转换符,用于输出记录日志的 Logger 名称。 -
{30}表示只取 Logger 名称的最后 30 个字符。 -
%-30logger{30}中的-表示左对齐,30表示输出的宽度为 30 个字符。如果 Logger 名称长度小于 30 个字符,会在右侧填充空格。 -
%line是行号转换符,用于输出记录日志的代码行号。 -
%-4line中的-表示左对齐,4表示输出的宽度为 4 个字符。如果行号长度小于 4 个字符,会在右侧填充空格。 -
%blue(...)是 Logback 提供的一个颜色转换符,用于将包裹的内容以蓝色显示,具体的颜色效果取决于日志输出的终端支持情况。
-
-
%thread-
%thread是线程名转换符,用于输出产生日志事件的线程名称
-
-
%msg-
%msg是日志消息转换符,用于输出日志记录时传递的消息内容。
-
-
%n-
%n是换行符转换符,用于在每条日志记录的末尾添加一个换行符,使每条日志记录单独占一行。
-
修改后的日志样式:
"E:\Program Files\Java\jdk1.8.0_221\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:E:\Program Files\IntelliJ IDEA 2019.2.3\lib\idea_rt.jar=57587:E:\Program Files\IntelliJ IDEA 2019.2.3\bin" -Dfile.encoding=UTF-8 -classpath "E:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;E:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;E:\zhuyuxi333\IdeaProjects\wiki\target\classes;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-web\2.4.2\spring-boot-starter-web-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter\2.4.2\spring-boot-starter-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot\2.4.2\spring-boot-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-autoconfigure\2.4.2\spring-boot-autoconfigure-2.4.2.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-logging\2.4.2\spring-boot-starter-logging-2.4.2.jar;E:\Program Files\MavenRepository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\Program Files\MavenRepository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;E:\Program Files\MavenRepository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;E:\Program Files\MavenRepository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;E:\Program Files\MavenRepository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;E:\Program Files\MavenRepository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;E:\Program Files\MavenRepository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-json\2.4.2\spring-boot-starter-json-2.4.2.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;E:\Program Files\MavenRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;E:\Program Files\MavenRepository\org\springframework\boot\spring-boot-starter-tomcat\2.4.2\spring-boot-starter-tomcat-2.4.2.jar;E:\Program Files\MavenRepository\org\apache\tomcat\embed\tomcat-embed-core\9.0.41\tomcat-embed-core-9.0.41.jar;E:\Program Files\MavenRepository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;E:\Program Files\MavenRepository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.41\tomcat-embed-websocket-9.0.41.jar;E:\Program Files\MavenRepository\org\springframework\spring-web\5.3.3\spring-web-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-beans\5.3.3\spring-beans-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-webmvc\5.3.3\spring-webmvc-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-aop\5.3.3\spring-aop-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-context\5.3.3\spring-context-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-expression\5.3.3\spring-expression-5.3.3.jar;E:\Program Files\MavenRepository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;E:\Program Files\MavenRepository\org\springframework\spring-core\5.3.3\spring-core-5.3.3.jar;E:\Program Files\MavenRepository\org\springframework\spring-jcl\5.3.3\spring-jcl-5.3.3.jar" com.zhuyuxi333.wiki.WikiApplication. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.4.2)56.800 INFO c.z.wiki.WikiApplication :55 main Starting WikiApplication using Java 1.8.0_221 on DESKTOP-1H3OOAD with PID 4040 (E:\zhuyuxi333\IdeaProjects\wiki\target\classes started by zxx in E:\zhuyuxi333\IdeaProjects\wiki)
56.803 INFO c.z.wiki.WikiApplication :660 main No active profile set, falling back to default profiles: default
57.290 INFO o.s.b.w.e.t.TomcatWebServer :108 main Tomcat initialized with port(s): 8080 (http)
57.296 INFO o.a.c.http11.Http11NioProtocol:173 main Initializing ProtocolHandler ["http-nio-8080"]
57.297 INFO o.a.c.core.StandardService :173 main Starting service [Tomcat]
57.297 INFO o.a.c.core.StandardEngine :173 main Starting Servlet engine: [Apache Tomcat/9.0.41]
57.348 INFO o.a.c.c.C.[.[localhost].[/] :173 main Initializing Spring embedded WebApplicationContext
57.348 INFO o.s.b.w.s.c.ServletWebServerApplicationContext:289 main Root WebApplicationContext: initialization completed in 517 ms
57.453 INFO o.s.s.c.ThreadPoolTaskExecutor:181 main Initializing ExecutorService 'applicationTaskExecutor'
57.492 INFO o.s.b.a.w.s.WelcomePageHandlerMapping:53 main Adding welcome page: class path resource [static/index.html]
57.541 INFO o.a.c.http11.Http11NioProtocol:173 main Starting ProtocolHandler ["http-nio-8080"]
57.555 INFO o.s.b.w.e.t.TomcatWebServer :220 main Tomcat started on port(s): 8080 (http) with context path ''
57.561 INFO c.z.wiki.WikiApplication :61 main Started WikiApplication in 1.192 seconds (JVM running for 1.706)
设置日志输出位置
<configuration><!-- 日志目录 --><property name="PATH" value="./log"></property><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">...</appender><appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- TRACE日志输出文件 --><file>${PATH}/trace.log</file>...</appender><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- ERROR日志输出文件 --><file>${PATH}/error.log</file>...</appender><root level="ERROR"><appender-ref ref="ERROR_FILE" /></root><root level="TRACE"><appender-ref ref="TRACE_FILE" /></root><root level="INFO"><!-- INFO日志输出到控制台 --><appender-ref ref="STDOUT" /></root>
</configuration>
设置Git忽略日志输出目录

(2)增加启动成功文案
WikiApplication.java:
package com.zhuyuxi333.wiki;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;@SpringBootApplication
public class WikiApplication {private static final Logger LOG = LoggerFactory.getLogger(WikiApplication.class);public static void main(String[] args) {SpringApplication app = new SpringApplication(WikiApplication.class);// 增加启动成功日志Environment env = app.run(args).getEnvironment();LOG.info("启动成功!!");LOG.info("地址:\thttp://127/0.0.1:{}", env.getProperty("server.port"));}}
通过 env.getProperty(...) 可以获取 application.properties 中的应用配置信息。

启动后效果:

(3)修改启动图案
在resources目录下增加一个banner.txt文件:
_______ __ __ _ ____ ____ ____|___ / | \ \ / / (_)___ \___ \___ \/ /| |__ _ \ \_/ / ___ ___ __) |__) |__) |/ / | '_ \| | | \ / | | \ \/ / ||__ <|__ <|__ </ /__| | | | |_| || || |_| |> <| |___) |__) |__) |/_____|_| |_|\__,_||_| \__,_/_/\_\_|____/____/____/
生成字符图案的网站:http://patorjk.com/software/taag
启动后效果:

相关文章:
【慕课网wiki项目学习笔记01】Spring Boot 项目搭建
2-2 新建SpringBoot项目 一、创建SpringBoot项目 (1)在SpringBoot官网创建 (2.1)在 IDEA 中创建 Group:公司名 Artifact:项目名 创建成功后开始下载Maven依赖(选择右下角的Import Changes&…...
后端架构模式之-BFF(Backend-For-Frontend)
Backend-for-Frontend(BFF) 的概念与意义 1. 什么是 Backend-for-Frontend(BFF)? Backend-for-Frontend(简称 BFF)是一种后端架构模式,它为特定的前端应用(Web、移动端…...
【高分论文密码】AI大模型和R语言的全类型科研图形绘制,从画图、标注、改图、美化、组合、排序分解科研绘图每个步骤
在科研成果竞争日益激烈的当下,「一图胜千言」已成为高水平SCI期刊的硬性门槛——数据显示很多情况的拒稿与图表质量直接相关。科研人员普遍面临的工具效率低、设计规范缺失、多维数据呈现难等痛点,因此科研绘图已成为成果撰写中的至关重要的一个环节&am…...
vue3-pc-template后台管理之角色管理与功能权限配置实践
在开发企业级应用时,权限控制无疑是至关重要且不可或缺的一部分。合理的权限控制不仅能够有效保障系统的安全性,还能确保不同用户角色在系统中拥有合适的操作权限,从而提高系统的使用效率和稳定性。本文将详细介绍如何在 Vue3 项目中实现功能…...
Android Flow 示例
在Android开发的世界里,处理异步数据流一直是一个挑战。随着Kotlin的流行,Flow作为Kotlin协程库的一部分,为开发者提供了一种全新的方式来处理这些问题。今天,我将深入探讨Flow的设计理念,并通过具体的例子展示如何在实…...
前端文件加载耗时过长解决方案
从你的 Network (网络) 面板 看到,许多 JS 文件的加载时间较长(1~2秒),可能的原因如下: ✅ 可能的原因 1. 过多的 JS 请求(多个小文件加载) 你当前页面加载了很多小 JS 文件(addSi…...
Visual Studio 2022新建c语言项目的详细步骤
步骤1:点击创建新项目 步骤2:到了项目模板 --> 选择“控制台应用” (在window终端运行代码。默认打印"Hello World") --> 点击 “下一步” 步骤3:到了配置新项目模块 --> 输入“项目名称” --> 更改“位置”路径&…...
物联网系统搭建
实验项目名称 构建物联网系统 实验目的 掌握物联网系统的一般构建方法。 实验要求: 1.构建物联网系统,实现前后端的交互。 实验内容: CS模式MQTT(不带数据分析处理功能) 实现智能设备与应用客户端的交…...
PostgreSQL中的事务隔离
1. 事务隔离的概念 在数据库管理系统中,事务隔离是一项重要的功能,它能确保在并发访问数据库时事务之间能够独立运行,不会相互干扰。数据库系统通常支持不同级别的事务隔离,用来满足不同应用程序之间的需求。 2. 事务隔离的种类…...
嵌入式硬件设计SPI时需要注意什么?
嵌入式硬件设计SPI时需要注意什么? 1. 硬件设计注意事项 关键点注意事项1. 信号完整性- 缩短SCK、MOSI、MISO的走线长度,避免反射干扰。- 使用屏蔽线或差分信号(高速场景)。- 阻抗匹配(特别是高频信号,如50Ω端接)。2. 电源与地线- 电源去耦:每个SPI芯片的VCC附近放置0…...
mysql新手常见问题解决方法总结
1. 安装与配置问题 1.1 无法安装MySQL Server MySQL Server安装失败是新手常见的问题之一,以下是具体原因及解决方案: 系统要求不满足:MySQL对操作系统有最低版本要求,如Windows 7 SP1及以上、macOS 10.13及以上。若系统版本过…...
Unity3D 资源加载与卸载策略详解
前言 在Unity3D开发中,资源加载与卸载(Asset Loading & Unloading)是优化游戏性能、减少内存占用、提升用户体验的关键环节。本文将详细探讨Unity3D中的资源加载与卸载策略,并提供相关的技术详解和代码实现。 对惹ÿ…...
AcWing 蓝桥杯集训·每日一题2025·5526. 平衡细菌
5526. 平衡细菌 题意 给定一个序列 ( a i ) (a_i) (ai),每次操作可以选择一个位置 (p),令从 ( a p ) (a_p) (ap) 开始的每个数都加上一个以 (1) 或者 (-1) 为公差的从 ( 1 / − 1 ) (1 / -1) (1/−1) 开始的等差数列。求最小化让序列归零的操作…...
Android15请求动态申请存储权限完整示例
效果: 1.修改AndroidManifest.xml增加如下内容: <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-perm...
UniApp如何判断平台的多种方法(2025最新指南)
摘要:在UniApp跨平台开发中,精准判断运行环境是实现多端差异化的关键。本文将介绍6种判断平台的实用方法,涵盖编译时与运行时场景,助你轻松处理多端兼容问题。 一、为什么需要判断平台? 在UniApp跨平台开发中…...
unity学习62,尝试做第一个小游戏项目:flappy bird
目录 学习参考 1 创建1个unity 2D项目 1.1 2D项目模板选择 1.1.1 2D(built-in-Render pipeline) 1.1.2 universe 2D 1.1.3 这次选择 2D(built-in-Render pipeline) 1.2 创建项目 1.2.1 注意点 1.2.2 如果想修改项目名 2 导入美术资源包 2.1 下载一个flappy bird的…...
设计模式说明
23种设计模式说明 以下是常见的 23 种设计模式 分类及其核心思想、应用场景和简单代码示例,帮助你在实际开发中灵活运用: 一、创建型模式(5种) 解决对象创建问题,降低对象耦合。 1. 单例模式(Singleton&…...
【STM32F103ZET6——库函数】11.捕获红外信号
目录 红外原理 数据码 引导码 连发码 配置捕获引脚 使能引脚时钟 配置定时器 使能定时器时钟 配置输入捕获 中断优先级分组 配置定时器4中断 定时器中断使能 使能定时器 重写定时器中断服务函数 清空定时器中断标志位 例程 例程说明 main.h main.c HongWai…...
unity调用本地部署deepseek全流程
unity调用本地部署deepseek全流程 deepseek本地部署 安装Ollama 搜索并打开Ollama官网[Ollama](https://ollama.com/download) 点击Download下载对应版本 下载后点击直接安装 安装deepseek大语言模型 官网选择Models 选择deepseek-r1,选择对应的模型࿰…...
Anaconda 部署 DeepSeek
可以通过 Anaconda 环境部署 DeepSeek 模型,但需结合 PyTorch 或 TensorFlow 等深度学习框架,并手动配置依赖项。 一、Anaconda 部署 DeepSeek 1. 创建并激活 Conda 环境 conda create -n deepseek python3.10 # 推荐 Python 3.8-3.10 conda activate…...
Mac OS升级后变慢了,如何恢复老系统?
我的一台Mac Air闲置很久了,原因是某次系统升级后用着会卡,有差不多10年没用了。今天想试着恢复一下出厂系统,目前看这条路可以走通。记录如下: 1、去哪里下载旧版系统? https://support.apple.com/zh-cn/102662 2、…...
AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例
文生图即以文字描述来生成图像,这是目前所有AI绘画软件的基本功能之一。要想画一副好的图片,除了选择好的模型,在文生图中,提示词特别关键。 一、什么是提示词(Prompt) 提示词又称创意、关键词、咒语、ca…...
SAP监控体系和机制
SAP监控体系 SAP监控体系是一个多层次、多维度的综合系统,旨在确保SAP系统的性能、可用性、安全性和稳定性。以下是SAP监控体系的主要组成部分: 1. 技术监控(Technical Monitoring) 目标:监控SAP系统的基础设施和技术…...
算法-贪心篇01-分发饼干
分发饼干 力扣题目链接 题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼…...
SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决
介绍一下我的是ubuntu20.04.机载电脑是orinnx,通过源码烧写的系统。 首先打开终端,输入 pip install evo --upgrade --no-binary evo 安装过程中出现如下问题 缺少 onnx 库还有Pandas 版本不兼容, ONNX(Open Neural Network E…...
【YashanDB认证】yashandb23.3.1 个人版单机部署安装实践
YCA报名链接如下: YashanDB|崖山数据库系统YashanDB学习中心-YCA认证详情 目前免费 主要参考文档: 单机(主备)部署 | YashanDB Doc 另外还参考摩天轮文章: YashanDB 23.2.9.101 企业版安装步骤抢先看! - 墨天轮 …...
ProfibusDP主站转ModbusTCP网关如何进行数据互换
ProfibusDP主站转ModbusTCP网关如何进行数据互换 在现代工业自动化领域,通信协议的多样性和复杂性不断增加。Profibus DP作为一种经典的现场总线标准,广泛应用于工业控制网络中;而Modbus TCP作为基于以太网的通信协议,因其简单易…...
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-2.1 uboot简介
前言: 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用: …...
Qt 实现绘图板(支持橡皮擦与 Ctrl+Z 撤销功能)[特殊字符]
作业: 1:实现绘图的时候,颜色的随时调整 2:追加橡皮擦功能 3:配合键盘事件,实现功能 当键盘按 ctrlz的时候,撤销最后一次绘图 头文件.h #ifndef WIDGET_H #define WIDGET_H#include <QWidge…...
基于STM32的智能家居蓝牙系统(论文+源码)
1总体方案设计 本次基于STM32的智能家居蓝牙系统,其系统总体架构如图2.1所示,采用STM32f103单片机作为控制器,通过DHT11传感器实现温湿度检测,MQ-2烟雾传感器实现烟雾检测,光敏电阻实现光照检测,同时将数据…...



