Maven资源文件的打包与过滤

默认打包测试

根据 Maven 的默认项目结构,资源文件放置在 src/main/resources 中,测试的资源文件在 src/test/resources 中。放置在 src/main/resources 中的资源文件默认会被打包进 jar 中。

注:如果配置文件放置在src/main/resources 下,则默认打包后该配置文件位于jar包的根目录下;

如果配置文件放置在src/main/resources/aaa 下,则默认打包后该配置文件位于jar包的根目录下的/aaa目录下;

如果配置文件放置在src/main/resources/META-INF 下,则默认打包后该配置文件位于jar包的根目录下的 /META-INF目录下;

Java开发中常见的问题(一)

空指针问题

使用 Optional<T> 避免空指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Optional<User> optionalUser = Optional.ofNullable(user);

// 存在即返回,空则返回默认值
User user1 = optionalUser.orElse(new User());

// 存在即返回,空则由函数产生
User user2 = optionalUser.orElseGet(() -> new User());

// 存在即返回,否则抛异常
User user3 = optionalUser.orElseThrow(() -> new RuntimeException("异常了"));

// 存在就去做相应的处理
optionalUser.ifPresent(u -> System.out.println(u.getName()));

// 对Optional中这个元素做相应的操作,且会返回一个Optional对象(这样就绝对避免了空指针问题)
Integer nameLength = optionalUser.map(u -> u.getName()).map(name -> name.length()).orElse(0);
System.out.println(nameLength);