> Java > java지도 시간 > Java 개발에 일반적으로 사용되는 jar 패키지 구성 및 사용

Java 개발에 일반적으로 사용되는 jar 패키지 구성 및 사용

angryTom
풀어 주다: 2019-11-29 13:16:17
앞으로
2389명이 탐색했습니다.

이 글은 Java 개발에서 자주 사용되는 jar 패키지와 자주 사용되는 API 레코드를 제가 직접 컴파일한 것입니다.

Java 개발에 일반적으로 사용되는 jar 패키지 구성 및 사용

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

ㅋㅋㅋ ]) 래퍼 클래스로 변환 (Int[], Double[])indexOf3개의 숫자를 비교하여 최소값을 반환하거나 지정된 여러 숫자를 비교합니다. 그리고 최소값을 반환합니다세 개의 숫자를 비교하여 최대값을 반환하거나 지정된 여러 숫자를 비교하여 최대값을 반환합니다수신 문자열 createDouble에서 해당 유형의 값을 생성합니다. , createFloat...지정된 문자열을 Int 유형으로 변환하고, 문자열이 null인 경우 기본값을 지정하도록 선택할 수 있습니다. 추가로 toDouble, toLong...이 있습니다. 및 다른 유형으로 변환하는 기타 방법
Method nameDescription
add
remove
clone배열 복사

배열에서 순서대로 검색하고, 배열에서 해당 값
lastIndexOf을 만족하는 첫 번째 첨자를 찾습니다. order Search, 해당 값을 만족하는 마지막 첨자를 찾습니다
contains배열에 특정 값이 포함되어 있는지
isEmpty배열이 비어 있는지 판단
isNotEmpty배열이 비어 있는지 판단 비어 있지 않습니다
reverseArray reversal
subarray 간격은 반 개방 간격이며 끝을 포함하지 않습니다. 2차원 배열을 해당 배열 유형에 맞게 Map으로 변환합니다
toMap
min
max
createInt
toInt

compare

동일한 유형의 두 값의 크기를 비교isParsable을 결정합니다. 문자열을 Long, Int 및 기타 유형으로 변환할 수 있는지 여부 isNumber 문자열이 숫자 값인지 확인합니다(0x, 0X는 동일한 기본 값으로 시작)3.DateUtils메서드 이름DescriptionparseDateDate 객체를 문자열로 변환isSameDay두 날짜를 판단합니다. 객체가 같은 날인지 여부isSameDay 여부를 결정합니다. 두 개의 Dated 객체가 같은 날입니다addHour지정된 Date 객체에 지정된 시간을 추가합니다. 그 외에도 addMonth, addDay.. 등이 있습니다.

DateFormatUtils는 이름에서 알 수 있듯이 시간을 문자열로 변환하는 데 사용됩니다. 여기서는 더 이상 설명하지 않겠습니다

4.StringUtils #🎜 🎜#

isDigits


문자열이 숫자만 포함하는지 확인

메서드 이름설명#🎜 🎜 ## 🎜🎜#join지정된 배열을 문자열로 연결하고 지정된 구분 문자를 추가합니다containOnly#🎜 🎜#문자열에 특정 문자열만 포함되어 있는지지정된 문자열 앞의 내용 차단#🎜 🎜 #substringAfter지정된 문자열 뒤의 콘텐츠 차단(지정된 문자열 제외) substringBetween# 🎜🎜#과 같은 문자열의 특정 범위 내용을 가로채기 # 🎜🎜#isBlank# 🎜🎜#isEmpty#🎜 🎜# 문자열이 비어 있는지 확인합니다(null이 아니거나 전달된 String 객체의 길이가 0이 아닌 한 true입니다) 특정 문자열에 지정된 문자열이 나타나는 횟수 확인deleteWhitespace 공백 삭제defaultIfBlank문자열이 비어 있으면 지정된 기본값(null 또는 문자열)을 반환합니다. # 🎜🎜## 🎜🎜 #capitalize지정된 문자열의 첫 글자를 대문자로 표시합니다. abbreviate은 다음을 지정합니다. 문자열의 마지막 세 자리는 다음으로 변환됩니다...swapCase문자열의 문자 대소문자를 반대로 바꿉니다. 예를 들어 aBc는 다음과 같습니다. AbC의 경우 문자열의 모든 문자를 소문자로 변환lowerCase#🎜 🎜 #upperCaseleftleftPad#🎜 🎜# prependIfMissing지정된 문자열이 특정 문자열로 시작하지 않는 경우 prependIfMissing("hello","li")와 같이 시작 부분이 자동으로 추가됩니다. ="lihello"#🎜 🎜#지정된 문자열이 특정 문자열로 시작하지 않는 경우(대소문자 무시), 시작 #🎜🎜 ## 🎜🎜#removeEnd# 🎜🎜#removeEndIgnoreCase# 🎜🎜# 위와 동일, 대소문자 무시 # 🎜🎜 #위의 반대 #🎜🎜 ## 🎜🎜#removeIgnoreCaseDelete 지정된 내용을 문자열에서 제거("hello","l")=" heo"#🎜🎜 #stripstripStart문자 지우기 문자열 시작 부분에 문자를 지정하세요. stripEnd#🎜 🎜#문자열 끝에 지정된 문자를 지웁니다. #🎜 🎜#

二、common-io

简介:常用的IO流工具包

<!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version></dependency>
로그인 후 복사

我们主要关心的就是Utils后缀的那几个类即可,可以看到,common-io库提供了FileUtils,FileSystemUtils,FileNameUtils,FileFilterUtils,IOUtils

FileUtils

● 写出文件

● 读取文件

● 创建一个有父级文件夹的文件夹

● 复制文件和文件夹

● 删除文件和文件夹

● URL转文件

● 通过过滤器和扩展名来筛选文件和文件夹

● 比较文件内容

● 文件最后修改时间

● 文件校验

FileSystemUtils

关于文件系统的相关操作,如查看C盘的大小,剩余大小等操作

IOUtils

字面意思,是封装了IO流的各种操作的工具类

三、Log4j

简介:Log4J 是 Apache 的一个开源项目,通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。

我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程,方便项目的调试。

依赖:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
로그인 후 복사

结构

Log4J 主要由 Loggers (日志记录器)、Appenders(输出端)和 Layout(日志格式化器)组成。

其中Loggers 控制日志的输出级别与日志是否输出;

Appenders 指定日志的输出方式(输出到控制台、文件等);

Layout 控制日志信息的输出格式。

日志级别:

substringBefore
substringBetween("abcde","a","e")="bcd"
difference 두 문자열을 비교하고 두 문자열의 서로 다른 내용을 반환합니다. 자세한 내용은 API 문서에 제공된 예를 참조하세요
문자열이 공백, null, ""," "이 세 가지 결과가 true인지 확인합니다.
# 🎜🎜#countMatches#🎜 🎜#
defaultIfEmpty문자열이 비어 있으면 지정된 기본값(null 또는 특정 문자열)이 반환됩니다.
문자열의 모든 문자를 대문자로 변환
왼쪽에 있는 숫자 가져오기 left("hello",3)="hel"과 같은 문자열 문자의 오른쪽은 반대입니다.
The 문자열 길이가 충분하지 않은 경우 지정된 문자열을 지정된 문자로 채웁니다(예: leftPad("hel",5,"z")="zzhel", rightPad 메서드는 반대입니다
prependIfMissing
#🎜🎜 #getCommonPrefix동일한 시작 내용으로 여러 문자열 가져오기 및 여러 문자열에 대한 매개변수 수신
#🎜 🎜#문자열의 끝을 제거합니다(특정 내용으로 끝나는 것으로 만족). 예: RemoveEnd("hello","llo")="he"
removeStart
removeRemove("hello","l")=와 같이 문자열에서 지정된 콘텐츠 삭제 "heo"
문자열의 시작과 끝에서 지정된 문자를 지웁니다(두 번째 매개변수는 null이며 공백을 지우는 데 사용됨). string(" abcxy", "xy")=" abc",strip(" abcxy","yx")=" abc"#과 같이 문자열의 시작과 끝 부분에 위치 🎜🎜#
级别说明
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 개발에 일반적으로 사용되는 jar 패키지 구성 및 사용

之后为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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿