主页 > 软件开发  > 

【慕课网wiki项目学习笔记01】SpringBoot项目搭建

【慕课网wiki项目学习笔记01】SpringBoot项目搭建
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 来初始化项目了,我们可以使用阿里云提供的脚手架镜像( start.aliyun /)

(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:// .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 /nexus/content/repositories/central</url> </mirror> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun /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> maven-central.storage.googleapis </url> <mirrorOf>central</mirrorOf> </mirror> <!-- 中央仓库在中国的镜像 --> <mirror> <id>maven.net </id> <name>one of the central mirrors in china</name> <url>http://maven.net /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 piler.source>1.8</maven piler.source> <maven piler.target>1.8</maven piler.target> <maven piler pilerVersion>1.8</maven piler pilerVersion> </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 /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 /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 :ZhuYuxi200019/jiawa_wiki.git,并给它起名为origin,以后就用origin来指代这个远程仓库 $ git remote add origin git@gitee :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 :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 :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 /software/taag

启动后效果:

​​​​​​​

标签:

【慕课网wiki项目学习笔记01】SpringBoot项目搭建由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【慕课网wiki项目学习笔记01】SpringBoot项目搭建