Java中加载文件的几种方式

在Java程序中加载外部文件有多中方式,每种方式也存在区别,本文将理清这些加载方式之间的区别。

文件IO方式

1
2
3
4
5
6
7
8
9
10
11
package org.xialei.example.resource;

import java.io.File;
import java.io.IOException;

public class Main {
public static void main(String[] args) throws IOException {
File file = new File("app.properties");
System.out.println(file.getAbsolutePath());
}
}

常见的读取方式,使用该方式读取文件时规则如下:

druid SQL监控不显示问题

新版druid数据源驱动的SQL监控如果用以前的老版本配置是无法监控到SQL的:

application.yml

1
2
3
4
5
6
7
spring:
datasource:
druid:
filters:
- stat
- wall
- log4j

Servlet中print-writer和outputstream编码问题

有个项目需要使用java开发一个简单的web接口用来请求加密数据,但是servlet之前只随便用了一下,平时工作也是以node为主。

问题

问题大致是”iso 88591 encoding之类的问题,稍微去google搜了一下,可能是搜的关键词不准确导致搜到的答案不理想,无意中看到有人讲writer和outputstream的问题。

原因

google到PrintWriter和OutputStream的区别

Spring Boot JPA 返回json时排除Null字段

Spring Boot在返回JSON的时候默认会返回null字段,这个对客户端一般没什么作用,还会增加服务器带宽压力。使用如下配置可以屏蔽。

在pojo对象上添加注解

1
2
3
@JsonInclude(JsonInclude.Include.NON_NULL)
class User {
}

使用pm2来保证Spring Boot应用稳定运行

Spring Boot开发web应用就像开发普通的java程序一般简洁,因为其内嵌了web容易,启动的时候只需要一条命令java -jar server.jar即可,非常方便。
但是由此而来的问题是万一应用挂了怎么办?

别担心,有pm2进程管理工具可以帮到你。

PM2简介

pm2原先是nodejs应用的进程管理工具,不过其良好的设计以及扩展性可以手动执行执行进程。

druid spring boot 统计SQL问题

spring-boot配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
spring.jpa.hibernate.ddl-auto=validate
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.initialize=true
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=10
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=false
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,slf4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
spring.datasource.useGlobalDataSourceStat=true

这个配置没有什么好说的,网上很多,可能关键在

1
2
3
spring.datasource.filters=stat,wall,slf4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
spring.datasource.useGlobalDataSourceStat=true

mybatis-generator-gui工具

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×