Spring Boot+Vue3前后端分离实战wiki知识库系统之Spring Boot项目搭建

新建SpringBoot项目【标SpringBoot项目目录结构】

两种创建Springboot的方式

使用spring官网提供的构建

在这里插入图片描述

选择自己需要的配置后下载压缩包解压后,使用IDEA引入项目,选择File→Open File or Project,选择解压后的文件夹,单击OK按钮,项目即可创建完成。

直接使用IDEA创建

选择Spring Initializr
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Group:一般输入公司域名,比如百度公司就会输入com.baidu,本次演示输入com.weiz。
Artifact:可以理解为项目的名称,用户根据实际情况来输入
Dependencies:添加项目所依赖的Spring Boot组件,可以多选。
如果依赖包下载很慢的话我们可以通过修改settings file自己配置一些maven镜像:
在这里插入图片描述

目录分析

在这里插入图片描述
idea是IDEA项目特有的文件,一般我们提价代码的时候不需要提交这个。
.mvn下有wrapper,可以不用下载maven直接用里面的包来配置,但我们一般用不到,。在这里插入图片描述
src下就是我们所开发的代码以及测试代码:
在这里插入图片描述
其中有Application.java是项目的启动类
resources下有static和templates:
static:存放Web访问的静态资源,如JS、CSS、图片等。
templates:存放页面模板。application.properties:存放项目的配置信息。
SpringBoot官方推荐前端使用Thtmeleaf,不过我们这个项目使用前后端分离用Vue Cli,使用最新的vue3,所以static和templates我们可以删掉。
test目录存放单元测试的代码,目录结构和java目录保持一致。
.gitignore可以配置git的时候有哪些文件需要忽略掉。
pom.xml用于配置项目依赖包以及其他配置。

项目的依赖信息主要分为parent和dependencies两部分。parent:配置父级项目的信息。Maven支持项目的父子结构,引入后会默认继承父级的配置。此项目中引入spring-boot-starter-parent定义Spring Boot的基础版本。dependencies:配置项目所需要的依赖包,Spring Boot体系内的依赖组件不需要填写具体版本号,spring-boot-starter-parent维护了体系内所有依赖包的版本信息。
在这里插入图片描述

运行Springboot项目

在这里插入图片描述
右击项目中的HelloApplication→run命令就可以启动项目,通过系统的启动日志可以看到,系统运行在8080端口。如果需要切换到其他端口,可在application.properties配置文件中自行定义。
在这里插入图片描述

项目初始配置

编码配置

在设置中修改编码模式为UTF-8
在这里插入图片描述

JDK配置

在这里插入图片描述

Maven配置

可以自己修改setting,可以修改为阿里云镜像这样下载jar包就会更快。修改settings的时候记得修改本地仓库地址为自己的。
在这里插入图片描述

Git配置

启用git
在这里插入图片描述
这时候我们就发现文件名变成红色了表示还没有git,但是我们的.idea中的文件没有变色,因为我们没有将他交给git管理。
在这里插入图片描述
我们可以在version control中看到哪些文件没有交给git管理:
在这里插入图片描述
我们可以将这些选中提交:在这里插入图片描述
当我们修改文件的时候文件名会变成蓝色:
在这里插入图片描述
当我们删除文件的时候文件名会变成灰色,我们可以使用revert来恢复文件:
在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

代码关联Git远程仓库

在这里插入图片描述
网上有很多博客可以参考,这里不再赘述。

启动日志优化

在这里插入图片描述

logback日志样式修改

在这里插入图片描述

 <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 修改一下路径-->
    <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 %green(%-18X{LOG_ID}) %msg%n</Pattern>-->
            <Pattern>%d{ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %green(%-18X{LOG_ID}) %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>

我们修改了输出日志的时间。在根目录下的会出现一个log文件夹用以保存我们的日志,这时候我们需要在.gitgnore中修改日志文件为不提交状态。
在这里插入图片描述

增加启动成功日志

在这里插入图片描述
在application.properties中修改启动端口:
在这里插入图片描述
运行项目可以看到启动日志:
在这里插入图片描述

修改启动图案

在项目的resources目录下新建banner.tx。
在application.properties中配置banner.txt的路径等信息(好像不需要也行 )
在这里插入图片描述

开发Hello World接口

在这里插入图片描述

制作Hello World接口

在这里插入图片描述
在这里插入图片描述
@RestController:返回客户端数据请求,主要用于RESTful接口。@Controller:返回数据和页面,处理HTTP请求。由于我们这个项目使用的是前后端分离所以基本都是使用@RestController。@RequestMapping(“/hello”)提供路由映射,意思是"/hello"路径的HTTP请求都会被映射到hello()方法上进行处理。我们也可以对于不同的请求方式设置不同的注解,例如:
在这里插入图片描述

项目分层,启动类换位置换位置

我们创建一个config文件夹,将启动类放进去:
在这里插入图片描述
启动项目,这时候我们发现请求报错404
在这里插入图片描述
那是因为我们启动的时候默认扫描启动类的目录下,而我们现在已经把启动类换位置了,所以得自己编写注解ComponentScan,设置扫描的路径(可以用逗号添加多个包):
在这里插入图片描述
修改完后就能正常访问接口了。

使用HTTP Client测试接口

自带浏览器没办法使用post等接口,使用postman时也需要进行窗口切换,所以我们下面使用自带的工具进行接口测试。
在这里插入图片描述
在根目录下新建一个http文件夹
在这里插入图片描述
在这里插入图片描述
新建文件后缀必须是http,编写好测试语句点击左侧的运行按钮就可以测试了。
在这里插入图片描述
我们可以通过设置live templates来简化开发:
在这里插入图片描述
这样编写代码的时候输入关键词就能自动补全。
下面我们编写一个post接口:

    @GetMapping("/hello")
    public String hello() {
        return "Hello World!" + testHello;
    }

进行测试:

###

POST http://localhost:8880/hello/post
Content-Type: application/x-www-form-urlencoded

name=TEST

###

测试结果:
在这里插入图片描述
我们使用这种测试方法就可以不用切换窗口比较便利。此外还可以进行结果验证,例如:
在这里插入图片描述
运行脚本进行结果验证:

SpringBoot配置文件【自定义配置项】

默认支持的配置文件

Spring Boot支持两种不同格式的配置文件:一种是Properties,另一种是YML。Spring Boot默认使用application.properties作为系统配置文件,项目创建成功后会默认在resources目录下生成application.properties文件。该文件包含Spring Boot项目的全局配置。我们可以在application.properties文件中配置Spring Boot支持的所有配置项,比如端口号、数据库连接、日志、启动图案等。
Spring Boot项目的配置文件默认存放在resources目录中。实际上,Spring Boot系统启动时会读取4个不同路径下的配置文件:
1)项目根目录下的config目录。
2)项目根目录。
3)classpath下的config目录。
4)classpath目录。

所以我们再创建配置文件系统也能自动读取到:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

自定义配置项

在这里插入图片描述
我们可以直接在代码中使用:
在这里插入图片描述
冒号后面是默认的配置值,如果没有读取到相关配置,就会使用默认值。

继承热部署

在这里插入图片描述
首先先添加依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

然后勾选如下图蓝色的选项
在这里插入图片描述
搜索registry
在这里插入图片描述
勾选如下图蓝色的选项:
在这里插入图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Spring BootVue3是一种常用的前后端分离的技术组合,可以用于构建实战Wiki知识库系统。 首先,采用Spring Boot作为后端框架可以快速搭建项目的基本框架和配置,并提供了许多有用的功能和便利的工具。Spring Boot具有自动配置的特点,可以减少开发人员的配置工作,提高开发效率。同时,Spring Boot还提供了丰富的插件和扩展库,可以集成和支持各种数据库、消息队列等常用的后端技术。 而Vue3是一种现代的JavaScript框架,用于构建用户界面。相较于Vue2,Vue3在性能和开发体验上都有了显著的提升。Vue3引入了响应式API、组合API等新特性,让开发者能够更容易地编写复杂的交互逻辑和可重用组件。同时,Vue3还优化了虚拟DOM和编译器,提高了渲染性能和项目的整体性能。 在实战Wiki知识库系统中,可以通过前后端分离的方式来实现系统的架构。后端使用Spring Boot提供数据管理和业务逻辑处理的接口,前端使用Vue3进行页面的展示和用户交互。前后端通过RESTful API进行通信,实现数据的请求和响应。 在后端,可以使用Spring Boot提供的JPA或MyBatis等持久层框架来操作数据库,并使用Spring Security来实现用户认证和权限控制。同时,可以使用Spring的缓存、事务管理等特性来提高系统的性能和安全性。 在前端,可以使用Vue3的组件化开发方式构建页面,并使用Vue Router进行页面之间的导航。可以使用Vue3的响应式API和组合API来管理页面的数据和交互逻辑。同时,可以使用Element Plus等常用的UI组件库,提供美观、易用的用户界面。 总而言之,通过使用Spring BootVue3的前后端分离技术,可以构建一个功能强大、性能优越的Wiki知识库系统,实现数据管理、用户认证和权限控制等功能,为用户提供高效的知识管理平台。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gujunhe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值