이 글은 Java 개발에서 자주 사용되는 jar 패키지와 자주 사용되는 API 레코드를 제가 직접 컴파일한 것입니다.
1. Common-lang3
소개: 가장 일반적으로 사용되는 jar 패키지 중 하나이며, 일반적으로 사용되는 많은 도구 패키지를 캡슐화합니다
(추천 동영상: java 동영상 튜토리얼)
종속성:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency>
주요 공통 클래스는 다음과 같습니다.
Array 도구 클래스 ArrayUtils
Date 도구 클래스 DateUtils
String 도구 클래스 StringUtils
Number 도구 클래스 NumberUtils
Boolean 도구 클래스 BooleanUtils
Reflection 관련 도구 클래스 FieldUtils, 초, MemberUtils , TypeUtils, ConstructorUtils
객체 도구 클래스 ObjectUtils
직렬화 도구 클래스 SerializationUtils
API 소개
여기에서는 일반적으로 사용되는 몇 가지 도구 클래스 및 메소드인 ArrayUtils, StringUtils, NumberUtils, DateUtils 등만 소개합니다. 공식 API 문서를 확인하세요
1.ArrayUtils
Method name | Description |
---|---|
add | |
remove | |
clone | 배열 복사 | ㅋㅋㅋ ]) 래퍼 클래스로 변환 (Int[], Double[])
indexOf |
배열에서 순서대로 검색하고, 배열에서 해당 값 |
lastIndexOf | 을 만족하는 첫 번째 첨자를 찾습니다. order Search, 해당 값을 만족하는 마지막 첨자를 찾습니다 |
contains | 배열에 특정 값이 포함되어 있는지 |
isEmpty | 배열이 비어 있는지 판단 |
isNotEmpty | 배열이 비어 있는지 판단 비어 있지 않습니다 |
reverse | Array reversal |
subarray | 간격은 반 개방 간격이며 끝을 포함하지 않습니다. 2차원 배열을 해당 배열 유형에 맞게 Map으로 변환합니다 |
toMap | |
min | |
max | |
createInt | |
toInt |
compare
동일한 유형의 두 값의 크기를 비교isDigits
|
isParsable | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
isNumber | 문자열이 숫자 값인지 확인합니다(0x, 0X는 동일한 기본 값으로 시작) | |||||||||||||||
3.DateUtils | ||||||||||||||||
메서드 이름 | ||||||||||||||||
Date 객체를 문자열로 변환 | ||||||||||||||||
두 날짜를 판단합니다. 객체가 같은 날인지 여부 | ||||||||||||||||
여부를 결정합니다. 두 개의 Dated 객체가 같은 날입니다 | ||||||||||||||||
지정된 Date 객체에 지정된 시간을 추가합니다. 그 외에도 addMonth, addDay.. 등이 있습니다. |
설명 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
containOnly | ||||||||||||||||
substringBefore | ||||||||||||||||
substringAfter | 지정된 문자열 뒤의 콘텐츠 차단(지정된 문자열 제외) | |||||||||||||||
substringBetween# 🎜🎜# | substringBetween("abcde","a","e")="bcd" | |||||||||||||||
difference | 두 문자열을 비교하고 두 문자열의 서로 다른 내용을 반환합니다. 자세한 내용은 API 문서에 제공된 예를 참조하세요 | |||||||||||||||
문자열이 공백, null, ""," "이 세 가지 결과가 true인지 확인합니다. | ||||||||||||||||
# 🎜🎜#countMatches#🎜 🎜# | 특정 문자열에 지정된 문자열이 나타나는 횟수 확인||||||||||||||||
deleteWhitespace | 공백 삭제 | |||||||||||||||
defaultIfBlank | 문자열이 비어 있으면 지정된 기본값(null 또는 문자열)을 반환합니다. | |||||||||||||||
defaultIfEmpty | 문자열이 비어 있으면 지정된 기본값(null 또는 특정 문자열)이 반환됩니다. | |||||||||||||||
지정된 문자열의 첫 글자를 대문자로 표시합니다. | ||||||||||||||||
은 다음을 지정합니다. 문자열의 마지막 세 자리는 다음으로 변환됩니다... | ||||||||||||||||
문자열의 문자 대소문자를 반대로 바꿉니다. 예를 들어 aBc는 다음과 같습니다. AbC의 경우 문자열의 모든 문자를 소문자로 변환 | ||||||||||||||||
문자열의 모든 문자를 대문자로 변환 | ||||||||||||||||
왼쪽에 있는 숫자 가져오기 left("hello",3)="hel"과 같은 문자열 문자의 오른쪽은 반대입니다. | ||||||||||||||||
The 문자열 길이가 충분하지 않은 경우 지정된 문자열을 지정된 문자로 채웁니다(예: leftPad("hel",5,"z")="zzhel", rightPad 메서드는 반대입니다 | #🎜 🎜#prependIfMissing | |||||||||||||||
#🎜 🎜# | prependIfMissing | |||||||||||||||
#🎜🎜 #getCommonPrefix | 동일한 시작 내용으로 여러 문자열 가져오기 및 여러 문자열에 대한 매개변수 수신 | |||||||||||||||
#🎜 🎜#문자열의 끝을 제거합니다(특정 내용으로 끝나는 것으로 만족). 예: RemoveEnd("hello","llo")="he" | # 🎜🎜#removeEndIgnoreCase# 🎜🎜# | |||||||||||||||
removeStart | # 🎜🎜 #위의 반대||||||||||||||||
remove | Remove("hello","l")=와 같이 문자열에서 지정된 콘텐츠 삭제 "heo" | |||||||||||||||
Delete 지정된 내용을 문자열에서 제거("hello","l")=" heo" | #🎜🎜 # | |||||||||||||||
문자열의 시작과 끝에서 지정된 문자를 지웁니다(두 번째 매개변수는 null이며 공백을 지우는 데 사용됨). string(" abcxy", "xy")=" abc",strip(" abcxy","yx")=" abc" | #과 같이 문자열의 시작과 끝 부분에 위치 🎜🎜# | stripStart|||||||||||||||
stripEnd | ||||||||||||||||
#🎜 🎜# |
级别 | 说明 |
---|---|
OFF | 最高日志级别,关闭左右日志 |
FATAL | 将会导致应用程序退出的错误 |
ERROR | 发生错误事件,但仍不影响系统的继续运行 |
WARN | 警告,即潜在的错误情形 |
INFO | 一般和在粗粒度级别上,强调应用程序的运行全程 |
DEBUG | 一般用于细粒度级别上,对调试应用程序非常有帮助 |
ALL | 最低等级,打开所有日志记录 |
我们主要使用这四个:Error>Warn>Info>Debug
使用
我们可以使用两种方式来运行Log4j,一种是java代码方式,另外一种则是配置文件方式
例子(Java方式)
public class Log4JTest { public static void main(String[] args) { //获取Logger对象的实例(传入当前类) Logger logger = Logger.getLogger(Log4JTest.class); //使用默认的配置信息,不需要写log4j.properties BasicConfigurator.configure(); //设置日志输出级别为WARN,这将覆盖配置文件中设置的级别,只有日志级别低于WARN的日志才输出 logger.setLevel(Level.WARN); logger.debug("这是debug"); logger.info("这是info"); logger.warn("这是warn"); logger.error("这是error"); logger.fatal("这是fatal"); } }
例子(配置文件方式)
上面的例子,我们想要实现打印Log,但是每次都要写一遍,浪费时间和精力,所以,Log4j提供了另外一种方式来配置好我们的信息
创建一个名为log4j.properties的文件,此文件需要放在项目的根目录(约定),如果是maven项目,直接放在resources文件夹中即可
log4j.properties
#控制台 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #log jdbc log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=WARN log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG #log mybatis设置 #log4j.logger.org.apache.ibatis=DEBUG log4j.logger.org.apache.ibatis.jdbc=error log4j.logger.org.apache.ibatis.io=info log4j.logger.org.apache.ibatis.datasource=info #springMVC日志 log4j.logger.org.springframework.web=WARN # 文件输出配置 log4j.appender.A = org.apache.log4j.DailyRollingFileAppender log4j.appender.A.File = D:/log.txt #指定日志的输出路径 log4j.appender.A.Append = true log4j.appender.A.Threshold = DEBUG log4j.appender.A.layout = org.apache.log4j.PatternLayout #使用自定义日志格式化器 log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #指定日志的输出格式 log4j.appender.A.encoding=UTF-8 #指定日志的文件编码 #指定日志的输出级别与输出端 log4j.rootLogger=DEBUG,Console,A #指定某个包名日志级别(不能超过上面定义的级别,否则日志不会输出) log4j.logger.com.wan=DEBUG
之后使用的话就比较简单了
//Logger的初始化(这个推荐定义为全局变量,方便使用) Logger logger = Logger.getLogger(Log4JTest.class); //输出Log logger.info("这是info");
四、lombok
简介:平常我们创建实体类的时候,需要get/set方法,极其麻烦,虽然IDEA等IDE都是有提供了快捷生成,不过,最好的解决方法还是省略不写
而lombok就是这样的一个框架,实现省略get/set方法,当然,lombok的功能不只有此,还有equal,toString方法也可以由此框架自动生成
lombok的原理是使用注解,之后就会在编译过程中,给Class文件自动加上get/set等方法
不过IDEA似乎无法识别,代码检查还是会报错,所以,使用IDEA的时候还得安装一个插件,在plugin搜索lombok,之后安装重启即可,如图
之后为Java项目添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency>
使用示例
1.实体类省略get/set
估计Kotlin中的data关键字就是参照着lombok实现的
//这里我们只需要为类添加Data注解,就会自动生成对应属性的get/set方法,toString,equal等方法 @Data public class User { private String username; private String password; }
2.需要无参构造以及get/set方法
@Getter @Setter @NoArgsConstructor public class User { private String username; private String password; }
3.链式调用set方法
@Data @Accessors(chain = true) public class User { private String username; private String password; } //使用 User user = new User(); user.setUsername("helo").setPassword("123");
4.参数不为空
//如果调用此方法,就会抱一个空指针错误 public String print(@NotNull String str){ ... }
5.只需要toString
@ToString(callSuper=true, includeFieldNames=true) public class User { private String username; private String password; //省略的get/set方法 }
6.builder模式创建实体类对象
@Data @Builder public class User { private String username; private String password; } //使用 User user1 = User.builder().username("user1").password("123").build();
7.工具类
@UtilityClass public class MyUtils{ //会将此方法自动转为静态方法 public void print(String str){ ... } } //使用 MyUtils.print("hello");
8.自动关闭流
public static void main(String[] args) throws Exception { //使用Cleanup会自动调用close方法 @Cleanup InputStream in = new FileInputStream(args[0]); @Cleanup OutputStream out = new FileOutputStream(args[1]); byte[] b = new byte[1024]; while (true) { int r = in.read(b); if (r == -1) break; out.write(b, 0, r); } }
9.省略Logger时的初始化
@Log4j @Log public class User{ //会自动添加此语句 //Logger logger = Logger.getLogger(User.class); ... }
本文来自php中文网,java教程栏目,欢迎学习!
위 내용은 Java 개발에 일반적으로 사용되는 jar 패키지 구성 및 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!