学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(1)

举报
海拥 发表于 2021/10/14 14:41:43 2021/10/14
【摘要】 🌊 作者主页:海拥🌊 简介:🏆CSDN全栈领域优质创作者、🥇HDZ核心组成员、🥈蝉联C站周榜前十 1. 项目前期准备–学习创建Maven聚合项目 1.1. 创建聚合项目先创建一个普通的Maven项目:然后,填写项目名称与组织ID:当项目创建成功后,默认会打开pom.xml,在该文件中添加配置:<packaging>pom</packaging>例如:完成后,该项目作为父级项目,可以...

🌊 作者主页:海拥
🌊 简介:🏆CSDN全栈领域优质创作者、🥇HDZ核心组成员、🥈蝉联C站周榜前十

1. 项目前期准备–学习创建Maven聚合项目

1.1. 创建聚合项目

先创建一个普通的Maven项目:

在这里插入图片描述

然后,填写项目名称与组织ID:

在这里插入图片描述
当项目创建成功后,默认会打开pom.xml,在该文件中添加配置:

<packaging>pom</packaging>

例如:

在这里插入图片描述

完成后,该项目作为父级项目,可以暂时不处理了,接下来,对父级项目的名称点鼠标右键,再创建子级项目,创建的菜单命令是New > Module

在这里插入图片描述

创建Module(模块)项目时,依然选择Maven项目,在详细配置界面,需要:

  • 确定Parent项目;
  • 自定义name,推荐使用“父级项目名-”作为前缀;
  • 填写GroupId;
  • 检查Location。

例如:

在这里插入图片描述
当子模块创建出来后,在左侧的项目管理面板可以看到子模块项目:

在这里插入图片描述

并且,在父项目的pom.xml中已经自动添加了<modules>节点,且将子模块项目配置进来了:

在这里插入图片描述

子模块项目也有自己独立的pom.xml,可以看到,已经将父级项目配置进来了:

在这里插入图片描述

然后,再使用同样的步骤,创建出第2个子模块项目shop-order

在这里插入图片描述

1.2. 通过父项目的配置使得各子模块项目都可以使用同样的依赖

在父级项目的pom.xml中添加依赖及相关配置:

在这里插入图片描述
则各个子模块项目就不需要添加junit依赖,而可以直接使用junit进行单元测试了:

在这里插入图片描述

1.3. 在父级项目中配置子级项目可选的依赖

如果某些依赖只是部分子模块项目需要使用,有另一些子模块项目并不需要使用的,为了便于整体统一管理,应该在父项目的pom.xml中通过<dependencyManagement>节点进行配置,使用该节点配置的依赖,子项目是不可以直接使用的:

在这里插入图片描述
如果直接在子项目中尝试使用该依赖的类,将会出错:

在这里插入图片描述

假设是shop-order子模块项目需要使用MySQL的依赖,需要在子模块项目的pom.xml中添加依赖,但是,添加依赖时,不需要指定版本:

在这里插入图片描述
然后,更新Maven(点刷新按钮)后再次进行测试:

在这里插入图片描述

至此,该子项目就可以使用MySQL的依赖了!

使用这种做法,就不必要求子项目管理各依赖的版本,所有的版本管理全部集中在父项目中即可!当然,子项目如果一定要使用其它版本,也可以自行添加<version>节点来指定。

另外,在以上操作步骤中,shop-user子模块项目并没有添加MySQL的依赖,所以,当执行同样的测试时,肯定是会出错的!

2. 项目前期准备–学习创建SpringBoot聚合项目

2.1. 创建父级项目

先创建父级项目,在创建项目的第1个面板的左侧选中Spring Initializr,在右侧确定可用的URL,并点击确定:

在这里插入图片描述

在第2个界面中,填写GroupArtifactType选择为Maven POM,其它选项不要求修改,直接确定即可:

在这里插入图片描述

在第3个界面中,可以选择依赖,由于这个父项目暂时不确定需要使用哪些依赖,可以先不勾选,后续自行补充也行。

在第4个界面中,主要确定存储项目文件的位置是否正确,全部无误后,则完成创建过程!

2.2. 创建子项目

对父项目点击鼠标右键,选择New > Module,在创建子模块项目的第1个界面中依然选择Spring Initializr,在第2个界面中确定子模块项目的信息,需要注意,当子模块项目的Artifact值中存在减号时,默认的Package值中是把减号两侧的名称直接连接起来的,建议自行补充小数点进行分隔:

在这里插入图片描述

在第3个界面中根据需要来勾选依赖,假设希望这个子项目可以被部署到Tomcat,则可以勾选Spring Web依赖(各依赖也可以在创建成功之后再补充):

在这里插入图片描述

在第4个界面中,确定没有问题,则直接创建完成。

创建完成后,在子模块项目的pom.xml文件中可以看到其父项目依然是SpringBoot项目,而不是之前创建的blog项目:

在这里插入图片描述

则需要将此处的父项目改为blog项目(打开父项目的pom.xml文件找到相关信息后复制并粘贴到子模块项目中):

在这里插入图片描述

同时,父项目中并没有自动添加<modules>节点来配置子模块项目,需要手动添加(另外,此时在父项目中并不需要<dependencies>节点和<build>节点,可以自行删除):

在这里插入图片描述

全部完成后,使用同样的操作手法,另创建一个子模块项目blog-comment

需要注意,由于2个子模块项目都是可以直接运行的,当添加了Spring Web依赖后,都可以直接启动Tomcat,且默认都是占用8080端口,所以,为了避免冲突,应该显式的将这些子模块项目的端口改为不一样的!

3. 使用SLF4j打印日志

使用SLF4j可以自定义输出日志,类似于使用System.out.println()输出一些内容,使用SLF4j的好处在于执行效率偏高,并且可以自定义日志级别,以至于可以筛选日志(使得级别较低的日志将不会被显示出来)。

在使用SLF4j时,推荐与lombok一起使用,应该先添加lombok的依赖,由于该依赖可能在若干个子模块项目中都需要使用,可以直接将这个依赖添加在父项目中:

在这里插入图片描述

接下来,可以在任一子模块项目中测试使用SLF4j:
在这里插入图片描述

在SLF4j中,日志的级别从低到高为:

  • TRACE:跟踪信息;
  • DEBUG:调试;
  • INFO:一般信息;
  • WARN:警告,一般是代码质量不高导致的,例如使用了声明为过期的API,或者流对象没有关闭等;
  • ERROR:错误,一般并不会导致项目崩溃;
  • FATAL:致命错误,会导致项目崩溃;
  • OFF:关闭所有日志的输出。

可以在项目的application.properties中配置日志的输出级别:

logging.level.cn.tedu.blog.user=trace

以上配置信息表示配置日志级别(logging.level),且设置的是cn.tedu.blog.user包,表示当前项目中这个包及其所有子孙包中的类输出日志后,都按照trace级别来显示,则trace及更高级别的日志都将被显示!

以上配置信息中,包名的右侧还可以添加类名,表示只配置某个类的日志显示级别。

当设置为trace级别后,各级别的日志都可以输出显示,一般,在开发阶段,都直接设置为trace级别即可,并且,在开发时,应该区分使用log的方法,比较敏感的信息应该使用debug方法来输出,当项目开发完成,需要部署到服务器上时,建议设置为warn(警告)或更高级别,则较低级别的日志在正式服务器的运行过程中并不会被显示出来!

在调用log的各方法时,输出的内容可以使用{}作为占位符(括号中间没有内容),后续使用可变参数添加占位符对应的值,例如:

在这里插入图片描述

🌊 面试题库:Java、Python、前端核心知识点大全和面试真题资料
🌊 电子图书:图灵程序丛书 300本、机械工业出版社6000册免费正版图书
🌊 办公用品:精品PPT模板几千套,简历模板一千多套
🌊 学习资料:2300套PHP建站源码,微信小程序入门资料

公众号【海拥】内回复【资源】获取以上所有资料

我已经写了很长一段时间的技术博客,这是我的一篇关于整合基于注解的SSM框架小结。我乐于通过文章分享技术与快乐。您可以访问我的博客主页: 华为云-海拥、我的个人博客:haiyong.site 以了解更多信息。希望你们会喜欢!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200