本系列文章为观看【狂神说Java】的 Mybatis 学习笔记
1. 日志
-
控制台输出、debug 和日志都属于排错手段。
-
常见日志接口如下:
- SLF4J、LOG4J、LOG4J2、STDOUT_LOGGING
- JDK_LOGGING、COMMONS_LOGGING、NO_LOGGING
1.1 标准日志
<settings>
<!--标准的日志配置-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
1.2 LOG4J
-
通过定义每一条日志信息的级别和输出格式,能够更加细致地控制日志的生成过程。
-
以上操作通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
-
子工程目录 \ pom.xml
<!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
-
子工程目录 \ src \ main \ resources \ log4j.properties
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码 log4j.rootLogger=DEBUG,console,file #控制台输出的相关设置 log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%c]-%m%n #文件输出的相关设置 log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File=./log/why.log log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n #日志输出级别 log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
-
子工程目录 \ src \ main \ resources \ mybatis-config.xml
<settings> <!--LOG4J--> <setting name="logImpl" value="LOG4J"/> </settings>
-
LOG4J 的使用
-
在需要使用 LOG4J 的类中导包
import org.apache.log4j.Logger;
-
创建日志对象,参数为当前类的 class
static Logger logger = Logger.getLogger(UserMapperTest.class);
-
日志级别
logger.info("info:进入了testLog4j"); logger.debug("debug:进入了testLog4j"); logger.error("error:进入了testLog4j");
-
2. Lombok
-
在线安装就直接在设置的插件选项里面搜就好了。
-
离线安装过程如下:
- 在此(https://plugins.jetbrains.com/plugin/6317-lombok)网站下载插件压缩包。
- 随便打开一个java项目,直接将压缩包拖入代码编辑区,然后重启IDEA
- 或者点击 Files > Settings > Plugins > 齿轮按钮 > Install Plugin from Disk > 找到下载的插件压缩包安装。
-
Lombok 的使用[1]
-
子工程目录 \ pom.xml
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency>
-
@Getter / @Setter
- 作用类上,生成所有成员变量的
getter
/setter
方法。 - 作用于成员变量上,生成该成员变量的
getter
/setter
方法。
- 作用类上,生成所有成员变量的
-
@ToString
- 作用于类,覆盖默认的
toString()
方法,可以通过of
属性限定显示某些字段,通过exclude
属性排除某些字段。
- 作用于类,覆盖默认的
-
@EqualsAndHashCode
- 作用于类,覆盖默认的
equals
和hashCode
。
- 作用于类,覆盖默认的
-
@NonNull
- 主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
-
@NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
-
作用于类上,用于生成构造函数。有
staticName
、access
等属性。 -
staticName
属性一旦设定,将采用静态方法的方式生成实例,access
可以限定访问权限。 -
@NoArgsConstructor
用于生成无参构造器。 -
@RequiredArgsConstructor
用于生成包含final
和@NonNull
注解的成员变量的构造器。 -
@AllArgsConstructor
用于生成全参构造器。
-
-
@Data
- 作用于类上,是注解
@ToString
/@EqualsAndHashCode
/@Getter
/@Setter
/@RequiredArgsConstructor
的集合。
- 作用于类上,是注解
-
@Builder
- 作用于类上,将类转变为建造者模式。
-
@Log
- 作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解。
-
@Cleanup
- 自动关闭资源,针对实现了
java.io.Closeable
接口的对象有效,如:典型的IO流对象。@Cleanup InputStream inputStream = FileInputStream(file);
- 自动关闭资源,针对实现了
-
@SneakyThrows
- 可以对受检异常进行捕捉并抛出。
-
@Synchronized
- 作用于方法级别,可以替换synchronize关键字或lock锁。
-
3. 参考资料
[1] 忞触动心灵. 忞触动心灵[EB/OL]. https://www.jianshu.com/p/2543c71a8e45, 2019-05-11/2021-05-08.