ホームページ  >  記事  >  Java  >  Java 開発で一般的に使用される jar パッケージの整理と使用

Java 開発で一般的に使用される jar パッケージの整理と使用

angryTom
angryTom転載
2019-11-29 13:16:172246ブラウズ

この記事では、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 DateFormatUtils

String ツール クラス StringUtils

Number ツール クラス NumberUtils

Boolean ツール クラス BooleanUtils

リフレクション関連ツールクラス FieldUtils、MethodUtils、MemberUtils、TypeUtils、ConstructorUtils

オブジェクトツールクラス ObjectUtils

シリアル化ツールクラス SerializationUtils

APIはじめに

ここでは、よく使用されるいくつかのツール クラスとメソッド、ArrayUtils、StringUtils、NumberUtils、DateUtils のみを紹介します。その他については、公式 API ドキュメントを確認してください

1.ArrayUtils

##クローン配列をコピーaddAll##removeAlltoObjectindexOflastIndexOf containsisEmpty配列が空かどうかを判断するisNotEmpty配列が空でないかどうかを判断するreverse配列リバースsubarray配列をインターセプトする間隔を指定します。間隔は半開間隔、含まれていません 最後にtoArray複数のオブジェクトを受け取り、これらのオブジェクトを対応する型の配列に変換しますtoMap 2 次元配列を Map に変換#2.NumberUtils
メソッド名 説明
add
削除

2 番目のパラメータは、サブスクリプトに渡されて次のようになります。削除(添え字は複数指定可能)
値(int[], double[])をパッケージングクラス(Int[], Double[)に変換します。 ] )
配列内を順番に検索し、対応する値を満たす最初のインデックスを見つけます
配列を順番に検索し、対応する値を満たす最後の添字を見つけます。
配列に特定の値が含まれているかどうかを確認します。

メソッド名##min 3 つの数値を比較、最小値を返す、または複数の指定した数値を比較、最小値を返す max 3 つの数値を比較、最大値を返す、または複数の指定した数値を比較、最大値を返します##compare#isDigits 文字列に数字のみが含まれているかどうかを判断します。isParsable文字列を Long、Int などに変換できるかどうかを判断します。タイプ isNumber文字列が数値 (0x、0X で始まる等しい 10 進数値) かどうかを判断します。3.DateUtilsメソッド名

説明

#createInt 受信した String、createDouble、createFloat から対応する型の値を作成します...
toInt 指定された文字列を Int 型に変換します。デフォルト値を指定することもできます。文字列が null の場合はデフォルト値が返されます。その他、toDouble、toLong もあります... など さまざまな種類のメソッド
#同じ型の 2 つの値のサイズを比較

説明

##parseDateisSameDay に対して、2 つの Dated オブジェクトが同じ日かどうかを判断します 2 つの Dated オブジェクトが同じ日にあるかどうかを判断します指定された時間を指定された時間に加算しますDate オブジェクト。さらに、addMonth、addDay..wait
Date オブジェクトを変換します。文字列
isSameDay
addHour
もあります。

DateFormatUtils は、その名前が示すように、時刻を文字列に変換するために使用されるため、ここでは詳しくは説明しません

#4.StringUtils

メソッド名説明join指定された配列をそして、指定された分割文字を追加しますcontainOnly文字列に特定の文字列のみが含まれるかどうかsubstringBefore指定された文字列より前のコンテンツをインターセプトsubstringAfter指定された文字列より後のコンテンツをインターセプト(指定された文字列を除く)#substringBetween#substringBetween("abcde","a","e")="bcd"# など、文字列の特定の範囲の内容をインターセプトします。 2 つの文字列を比較し、2 つの文字列の異なる内容を返します。詳細については、API ドキュメントの例を参照してください。 文字列が空白かどうかを判断します。null、""、" " の 3 つの結果はすべて trueです。 文字列が空白であるかどうかを判断します。は空です (null でない限り、または受信 String オブジェクトの長さが 0 でない限り、true を意味します)指定した文字列が特定の文字列内に出現します Times文字列内のスペースを削除します文字列が空の場合は、指定されたデフォルト値 (null または文字列) を返します。 文字列が空の場合は、指定されたデフォルト値 (null または文字列) を返します。または特定の文字列)指定された文字列の最初の文字を大文字にします 指定された文字列の最後の 3 桁を...に変換します。文字列内の文字の大文字と小文字を逆にします。たとえば、aBc が AbC になります。 文字列内のすべての文字を小文字に変換します文字列内のすべての文字を小文字に変換します文字列を小文字に変換 大文字に変換 文字列の左側の数文字を取得します (例: left("hello",3)="hel", right) 文字列の長さが十分でない場合は、指定した文字を使用して指定した文字列を埋めます (例: leftPad("hel", 5,"z")="zzhel"、rightPad メソッドはその逆です。 指定された文字列が特定の文字列で始まらない場合は、先頭がprependIfMissing("hello","li" )="lihello"指定された文字列が特定の文字列で始まらない場合は、自動的に追加されます。文字列 (大文字と小文字は無視)、先頭 複数の文字列の同じ開始内容を取得し、複数の文字列のパラメータを受け取ります#removeEnd#Delete 文字列の末尾 (特定のコンテンツで終わることに満足) (removeEnd("hello","llo")="he" など) ## など) #removeIgnoreCaseremove( "hello","l")="heo" など、文字列内の指定されたコンテンツを削除します。ストリップstrip(" abcxy","xy など) 文字列の先頭と末尾に指定された文字をクリアします (2 番目のパラメータは null で、文字列の先頭と末尾のスペースを削除するために使用されます)。 ")= abc",strip(" abcxy","yx")=" abc"stripStart文字列の先頭の指定文字をクリアします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 控制日志信息的输出格式。

日志级别:

##Difference
isBlank
isEmpty
countMatches
deleteWhitespace
defaultIfBlank
#defaultIfEmpty
capitalize
abbreviate
swapCase
lowerCase
upperCase
left
leftPad
prependIfMissing
prependIfMissing
は自動的に追加されます getCommonPrefix
##removeEndIgnoreCase は上記と同じです。 同じ、大文字と小文字を無視します。
removeStart の反対です。上記
remove 文字列を削除 文字列内の指定された内容 (remove("hello","l")="heo"
级别 说明
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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。