目录

稻草人项目:

稻草人项目流程演示:

稻草人项目功能实现组件及工作原理:

创建数据库表格及表字段名称:

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

1.1. 创建聚合项目

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

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

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

2.1. 创建父级项目

2.2. 创建子项目

3. 使用SLF4j打印日志


稻草人项目:

稻草人项目流程演示:

稻草人项目功能实现组件及工作原理:

创建数据库表格及表字段名称:

-- MySQL dump 10.13  Distrib 5.7.15, for osx10.11 (x86_64)
--
-- Host: localhost    Database: straw
-- ------------------------------------------------------
-- Server version   5.7.15/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
-- Table structure for table `user`
--DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) UNIQUE NOT NULL COMMENT '用户名',`nickname` varchar(20) NULL COMMENT '昵称',`password` char(68) NOT NULL COMMENT '密码',`gender` int(1) COMMENT '性别',`day_of_birth` date COMMENT '生日',`phone` varchar(20) COMMENT '电话号码',`class_id` int(11) COMMENT '所属班级id',`created_time` datetime COMMENT '注册时间',`enabled` int(1) COMMENT '账号是否可用,0-否,1-是',`locked` int(1) COMMENT '账号是否锁定,0-否,1-是',`type` int(1) COMMENT '0-学生,1-老师',`self_introduction` varchar(255) COMMENT '自我介绍',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
/*!40101 SET character_set_client = @saved_cs_client */;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2020-07-01 16:30:32

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>节点,可以自行删除):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>cn.tedu</groupId><artifactId>blog</artifactId><version>0.0.1-SNAPSHOT</version><name>blog</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><modules><module>blog-user</module><module>blog-comment</module></modules></project>

全部完成后,使用同样的操作手法,另创建一个子模块项目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的各方法时,输出的内容可以使用{}作为占位符(括号中间没有内容),后续使用可变参数添加占位符对应的值,例如:

稻草人项目--项目前期准备相关推荐

  1. 稻草人项目--项目的数据处理流程-- ( day03 )

    目录 稻草人项目 项目的数据处理流程 - - -了解项目的数据处理流程 用户界面---->控制器层---->业务层---->持久层 学生注册---持久层 学生注册--业务层 在执行 ...

  2. 正在使用的项目,项目名那里出现了红色感叹号?怎么去除?

    正在使用的项目,项目名那里出现了红色感叹号?怎么去除? 今天删除了几个jar文件,出现了如下的问题, [问题原因]:工程中classpath中指向的包路径错误 [解决办法]:右键项目名称 BuildP ...

  3. arm电子相册项目——项目要求篇(描述功能)

    <arm电子相册项目--项目要求篇(描述功能)> 工具:keil4 , arm开发板(Mini2451)(s3c2451) , 串口线 功能:显示照片(自动切换 / 手动切换 / 暂停切换 ...

  4. 2 大数据电商数仓项目——项目需求及架构设计

    2 大数据电商数仓项目--项目需求及架构设计 2.1 项目需求分析 用户行为数据采集平台搭建. 业务数据采集平台搭建. 数据仓库维度建模(核心):主要设计ODS.DWD.DWS.AWT.ADS等各个层 ...

  5. C++文件服务器项目—项目总结与反向代理—7

    C++文件服务器项目-项目总结与反向代理-7 1. 项目总结 2. 项目提炼 3. web服务器的反向代理 4. 存储节点的反向代理   组件介绍基本写完了,后续进行深入.   本专栏知识点是通过零声 ...

  6. maven聚合项目项目间依赖时,出现错误的解决办法

    纯手打,转载请附上本文网址!!! 例如自己的项目taotao maven聚合项目项目间依赖时 打包时候要先在聚合工程里面(从外向里)整体install,再到子工程里install mvn clean ...

  7. java 源码哪个文件夹_JAVA项目——项目编译后的类路径和源码文件夹图解

    JAVA项目--项目编译后的类路径和源码文件夹图解 前言: 一定要很清楚哪个是源码文件夹,哪个是类路径以及类路径的形成机制. 项目编译后不同的源码文件夹会被合并到bin目录下,形成类路径.不同的源码文 ...

  8. Springboot毕设项目项目管理系统01k92java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目项目管理系统01k92java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql ...

  9. 稻草人项目--项目前期准备( day02 )

    目录 稻草人项目 1. 项目前期准备--MyBaitsPlus 创建实体类User 添加MySQL的依赖: application.properties中配置连接数据库的配置信息: Druid据库连接 ...

最新文章

  1. 全国首个5G+AI的智慧交通管理示范应用成功开通!
  2. 文件上传api——MultipartFile
  3. 求以下double数组的平均值(四舍五入保留两位小数):
  4. python 计量经济 35岁 工作_Python在计量经济与统计学中的应用
  5. gridview 万能分页代码
  6. 计算机音乐 带你去旅行,带你去旅行(全乐器)
  7. jsf标签,jsp标签与jstl标签
  8. C++ 实验3 类和对象
  9. Ubuntu Apache 不同端口监听不同站点
  10. 华为鸿蒙系统多而能使用吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  11. 2008 r2 server sql 中文版补丁_sql2008 sp4补丁
  12. STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
  13. 【优化调度】基于人工鱼群算法求解梯级水库优化调度matlab源码
  14. 用JMS578转接板开卡PS3111主控pSLC模式,带固件下载
  15. 彻底弄懂 Nginx location 匹配
  16. TDS:标签平台+API平台+数据共享平台,助力数据运营平台建设
  17. 苹果呼叫转移设置不了_手机不想接电话怎么设置为空号教程
  18. wireshark以太网协议分析
  19. 微博移动端所获数据各字段的含义
  20. 【33】深入理解对象与垃圾回收机制

热门文章

  1. 【负载均衡集群——保姆式教学】
  2. 认识Arduino Uno
  3. 使用Excel替换某一字符后的全部内容
  4. mysql-connector-java-8.0.19.jar免费下载
  5. 国稻种芯百团计划行动 胡培松:问“道”俯首田间只为问“稻”
  6. 阿英讲频率f,角频率Ω和数字频率w的物理含义--附MATLAB仿真
  7. 测试的最高境界“教开发写代码”(提交高质量bug)
  8. 青岛大学计算机论文,青岛大学本科生论文格式
  9. 马斯克回应被联合国逼捐?发中文《七步诗》引热议
  10. 九阳破壁机轴承坏只能换刀片总成组件