先创建一个普通的Maven项目:
然后,填写项目名称与组织ID:
当项目创建成功后,默认会打开pom.xml,在该文件中添加配置:
<packaging>pom</packaging>
例如:
完成后,该项目作为父级项目,可以暂时不处理了,接下来,对父级项目的名称点鼠标右键,再创建子级项目,创建的菜单命令是New
> Module
:
创建Module(模块)项目时,依然选择Maven项目,在详细配置界面,需要:
例如:
当子模块创建出来后,在左侧的项目管理面板可以看到子模块项目:
并且,在父项目的pom.xml中已经自动添加了<modules>
节点,且将子模块项目配置进来了:
子模块项目也有自己独立的pom.xml,可以看到,已经将父级项目配置进来了:
然后,再使用同样的步骤,创建出第2个子模块项目shop-order
:
在父级项目的pom.xml中添加依赖及相关配置:
则各个子模块项目就不需要添加junit
依赖,而可以直接使用junit
进行单元测试了:
如果某些依赖只是部分子模块项目需要使用,有另一些子模块项目并不需要使用的,为了便于整体统一管理,应该在父项目的pom.xml中通过<dependencyManagement>
节点进行配置,使用该节点配置的依赖,子项目是不可以直接使用的:
如果直接在子项目中尝试使用该依赖的类,将会出错:
假设是shop-order子模块项目需要使用MySQL的依赖,需要在子模块项目的pom.xml中添加依赖,但是,添加依赖时,不需要指定版本:
然后,更新Maven(点刷新按钮)后再次进行测试:
至此,该子项目就可以使用MySQL的依赖了!
使用这种做法,就不必要求子项目管理各依赖的版本,所有的版本管理全部集中在父项目中即可!当然,子项目如果一定要使用其它版本,也可以自行添加<version>
节点来指定。
另外,在以上操作步骤中,shop-user子模块项目并没有添加MySQL的依赖,所以,当执行同样的测试时,肯定是会出错的!
先创建父级项目,在创建项目的第1个面板的左侧选中Spring Initializr
,在右侧确定可用的URL,并点击确定:
在第2个界面中,填写Group和Artifact,Type选择为Maven POM
,其它选项不要求修改,直接确定即可:
在第3个界面中,可以选择依赖,由于这个父项目暂时不确定需要使用哪些依赖,可以先不勾选,后续自行补充也行。
在第4个界面中,主要确定存储项目文件的位置是否正确,全部无误后,则完成创建过程!
对父项目点击鼠标右键,选择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
端口,所以,为了避免冲突,应该显式的将这些子模块项目的端口改为不一样的!
使用SLF4j可以自定义输出日志,类似于使用System.out.println()
输出一些内容,使用SLF4j的好处在于执行效率偏高,并且可以自定义日志级别,以至于可以筛选日志(使得级别较低的日志将不会被显示出来)。
在使用SLF4j时,推荐与lombok
一起使用,应该先添加lombok
的依赖,由于该依赖可能在若干个子模块项目中都需要使用,可以直接将这个依赖添加在父项目中:
接下来,可以在任一子模块项目中测试使用SLF4j:
在SLF4j中,日志的级别从低到高为:
可以在项目的application.properties中配置日志的输出级别:
logging.level.cn.tedu.blog.user=trace
以上配置信息表示配置日志级别(logging.level
),且设置的是cn.tedu.blog.user
包,表示当前项目中这个包及其所有子孙包中的类输出日志后,都按照trace
级别来显示,则trace
及更高级别的日志都将被显示!
以上配置信息中,包名的右侧还可以添加类名,表示只配置某个类的日志显示级别。
当设置为trace
级别后,各级别的日志都可以输出显示,一般,在开发阶段,都直接设置为trace
级别即可,并且,在开发时,应该区分使用log
的方法,比较敏感的信息应该使用debug
方法来输出,当项目开发完成,需要部署到服务器上时,建议设置为warn
(警告)或更高级别,则较低级别的日志在正式服务器的运行过程中并不会被显示出来!
在调用log
的各方法时,输出的内容可以使用{}
作为占位符(括号中间没有内容),后续使用可变参数添加占位符对应的值,例如: