首頁  >  文章  >  Java  >  Java開發中常用jar包整理及使用

Java開發中常用jar包整理及使用

angryTom
angryTom轉載
2019-11-29 13:16:172246瀏覽

本文整理了我自己在Java開發中常用的jar套件以及常用的API記錄。

Java開發中常用jar包整理及使用

一、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>

主要常見的類別如下:

##陣列工具類別ArrayUtils

日期工具類別DateUtils DateFormatUtils

字串工具類別StringUtils

數字工具類別NumberUtils

布林工具類別BooleanUtils

# #反射相關工具類別FieldUtils、MethodUtils、MemberUtils、TypeUtils、ConstructorUtils

物件工具類別ObjectUtils

序列化工具類別SerializationUtils

API介紹#API介紹

#白版介紹

##這裡我只介紹常使用的幾個工具類別及方法,ArrayUtils,StringUtils,NumberUtils,DateUtils,其他的請查看官方API文件吧

1.ArrayUtils 說明#複製陣列第二個參數傳入需要刪除的下標(可以指定多個下標)把數值(int[],double[])轉為包裝類別(Int[],Double[] )在陣列依序查找,找到第一個滿足對應的數值的下標在陣列依序查找,找到最後一個滿足對應的數值的下標##陣列是否包含某個值isEmpty判斷陣列是否為空#isNotEmpty判斷陣列是否不為空#reverse陣列反轉#subarray#指定區間截取數組,區間為半開區間,不包含結尾toArray接收一個多個對象,把這幾個物件轉為對應類型的陣列
方法名稱
add
#remove
#clone
addAll
#removeAll
toObject
indexOf
lastIndexOf
#contains
##toMap 將一個二維陣列轉為Map

#2.NumberUtils

說明#min比較三個數,傳回最小值或比較指定的幾個數,傳回最小值max#比較三個數,傳回最大值或比較指定的幾個數,傳回最大值createInt從傳入的String中建立對應類型的數值,createDouble,createFloat...toInt將指定字串轉為Int類型,可以選擇指定預設數值,如果字串為null則傳回預設數值,除此之外,還有toDouble,toLong...等轉為不同型別的方法compare比較兩個同型別數值的大小isDigits判斷字串是否只包含數字isParsable判斷字串是否可轉換為Long,Int等型別 isNumber判斷字串是否為數值(0x,0X開頭等進位數值)
##方法名稱


3.DateUtils

#方法名稱說明#parseDate#將Date物件轉為字串isSameDay判斷兩個Dated物件是否為同一天isSameDay#判斷兩個Dated物件是否為同一天addHour將指定的Date物件加上指定小時,除此之外,還有addMonth,addDay..等等

DateFormatUtils如其名,是用來把時間轉為字串,這裡就不再多說

4.StringUtils

##remove刪除字串中的指定內容,如remove("hello","l")="heo"#removeIgnoreCase刪除字串中的指定內容,如remove( "hello","l")="heo"strip#清除字串開頭和結尾指定的字元(第二個參數為null,用來清除字串開頭與結尾的空格),如strip(" abcxy","xy")=" 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 控制日志信息的输出格式。

日志级别:

方法名稱 說明
#join 將指定的陣列連接成字串,並且加入指定的分割字元
containOnly 字串是否只包含某個字串
substringBefore 截取指定字串前面的內容
substringAfter #截取指定字串後面的內容(不包括指定字串)
substringBetween 截取字串某區間內容,如substringBetween("abcde","a","e")="bcd"
# difference 比較兩個字串,傳回兩個字串不同的內容,具體可以看​​API文件給出的範例
isBlank #判斷字串是否為空白,null,""," "這三個結果都是為true
#isEmpty 判斷字串是否為空(只要不為null,或傳入的String物件的長度不為0即為true)
countMatches 判斷指定的字串在某個字串中出現的次數
deleteWhitespace 刪除字串中的空格
defaultIfBlank 如果字串為空白,則傳回一個指定的預設值(null或某個String)
defaultIfEmpty #如果字串為空,則傳回一個指定的預設值(null或某個String)
capitalize 將指定字串首字母大寫
abbreviate 將指定字串的後面三位元轉為...
swapCase 將字串中的字母大小寫反轉,如aBc變成AbC
lowerCase 將字串的字母全部轉為小寫
upperCase 將字串的字母全部轉為大寫
left 取字串左邊幾個字符,如left("hello",3)="hel",right與此相反
leftPad 字串的長度不夠,則使用指定字元填充指定字串,如leftPad("hel",5,"z")="zzhel", rightPad方法與此相反
prependIfMissing #指定字串不以某段字串開頭,則自動新增開頭,如prependIfMissing("hello","li" )="lihello"
prependIfMissing #指定字串不以某段字串開頭(忽略大小寫),則自動新增開頭
#getCommonPrefix 取得多個字串相同的開頭內容,接收參數為多個字串
removeEnd 刪除字串中結尾(滿足是以某段內容結尾),如removeEnd("hello","llo")="he"
removeEndIgnoreCase #與上面一樣,忽略大小寫
removeStart 與上面的相反
级别 说明
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刪除