LIXI.FUN
0%

日志框架打印的信息,前面出现的类名,方法名,在配置文件里可以进行配置,那它是从哪里拿到的信息呢?

抽出来一个题目,实现一个函数,打印调用方的信息,类名,方法名等。

例如:

1
2
3
4
5
6
7
8
9
10
11
public class Caller {

public static void main(String[] args) {
printCallerInfo();
}

private static void printCallerInfo() {
// TODO
// 打印结果应该是 main
}
}
阅读全文 »

假设有这样一个需求,删除某一个目录下的 “.json” 结尾的,修改时间在 x 分钟之前的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Solution {

public static void main(String[] args) {
delete(Path.of("/home/lixifun/log"), ".json", 30, TimeUnit.MINUTES);
}

private static void delete(Path dir, String suffix, int time, TimeUnit timeUnit) {

Instant timeNodeToDelete = Instant.now().minusMillis(timeUnit.toMillis(time));

DirectoryStream.Filter<Path> filter = file -> {
Instant fileLastModTime = Files.getLastModifiedTime(file).toInstant();

// 问题就出现在下面两句了
// 注释掉的是不正确的
// return file.endsWith(suffix)
// && fileLastModTime.isBefore(timeNodeToDelete);

// 这个是正确的
return file.toString().endsWith(suffix)
&& fileLastModTime.isBefore(timeNodeToDelete);

};

try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(dir, filter)) {
for (Path file : dirStream) {
Files.delete(file);
}
} catch (IOException e) {
e.printStackTrace();
}
}
阅读全文 »

  1. 在项目根目录下,创建 libs 文件夹,名字可依个人习惯更改,下面保持一致即可。
  2. 将需要添加的第三方 jar 包文件放置到上面创建的文件夹中。
  3. 在 pom.xml 的 <dependencies> 中添加上面第三方 jar 的依赖,根据实际情况进行填写
    1
    2
    3
    4
    5
    6
    7
    <dependency>
    <groupId>jar的groupId</groupId>
    <artifactId>jar的artifactId</artifactId>
    <version>版本</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/libs/jar包的名字需要带后缀</systemPath>
    </dependency>
    阅读全文 »

问题出现在配置 geoserver-manager 的时候,按照文档进行配置后,无法下载依赖。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<dependencies>
<dependency>
<groupId>it.geosolutions</groupId>
<artifactId>geoserver-manager</artifactId>
<version>1.7.0</version>
</dependency>
</dependencies>

<repositories>
<repository>
<id>GeoSolutions</id>
<url>http://maven.geo-solutions.it</url>
</repository>
</repositories>
阅读全文 »

教科书的经典做法,总是选择 lo 作为基准点,lo[lo, hi] 区间的左边,当跳出大的 while i < j 的时候,交换分界点 arr[x]arr[lo] 的值,让基准点落在左右的分界点上,因为 arr[x] 要交换到左边,那就要求 arr[x] < arr[lo],在这种情况下,只能选择,先从右往左找,具体原因,下面分析。

阅读全文 »