LocalDateTime
时间对象,就像Calendar类类似,里面涵盖了很多时间的操作。jdk1.8才有的
TimeUnit
一般和线程池和任务一起搭配使用,里面具有很多时间单位以及时间转换的方法。jdk1.8才有的
Properties
可以通过流的方式将.properties格式的文件数据通过流的方式读取到该类中,该类就像是一个map对象一样,保存着key/value形式的数据。
例如:
Properties prop = null;
public String loadProperties(String filePath, String key) {
if (prop == null) {
prop = new Properties();
try {
//InputStream fis = new FileInputStream(filePath);
InputStream fis = this.getClass().getResourceAsStream(filePath);
prop.load(fis);
} catch (IOException e) {
e.printStackTrace();
}
}
if (prop != null) {
return prop.getProperty(key);
} else {
return null;
}
}
OkHttpClient
第三方的api,十分方便的发送请求,基本上封装好了请求头什么的。
例如:
public static String httpGet2(String urlStr, List<String> urlParam) throws IOException {
OkHttpClient client = new OkHttpClient.Builder().readTimeout(60, TimeUnit.SECONDS).build();
if (urlParam != null && !urlParam.isEmpty()) {
urlStr += "?";
// 定义一个迭代器,并将MAP值的集合赋值
for (String string : urlParam) {
urlStr += string + "&";
}
urlStr = urlStr.substring(0, urlStr.length() - 1);
}
System.out.println(urlStr);
Request request = new Request.Builder()
.url(urlStr)
.get()
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
HttpURLConnection与URL
java原生的api,需要自己设置请求头,响应头,较为繁琐,但是更加灵活。
例如:
public static String httpGet(String urlStr, List<String> urlParam) throws IOException {
if (urlParam != null && !urlParam.isEmpty()) {
urlStr += "?";
// 定义一个迭代器,并将MAP值的集合赋值
for (String string : urlParam) {
urlStr += string + "&";
}
urlStr = urlStr.substring(0, urlStr.length() - 1);
}
// 实例一个URL资源
URL url = new URL(urlStr);
//实例一个HTTP CONNECT
HttpURLConnection connet = (HttpURLConnection) url.openConnection();
connet.setRequestMethod("GET");
connet.setRequestProperty("Charset", "UTF-8");
connet.setRequestProperty("Content-Type", "application/json");
connet.setConnectTimeout(60000);// 连接超时 单位毫秒
connet.setReadTimeout(60000);// 读取超时 单位毫秒
connet.connect();
if (connet.getResponseCode() != 200) {
System.out.println("请求异常 " + connet.getResponseCode() + " " + urlStr);
return "";
}
//将返回的值存入到String中
BufferedReader brd = new BufferedReader(new InputStreamReader(connet.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line;
while ((line = brd.readLine()) != null) {
sb.append(line);
}
brd.close();
connet.disconnect();
return sb.toString();
}
QueryRunner
apach下的一个api,对jdbc进行了一层封装。
ComboPooledDataSource
c3p0数据库连接池api。
例如:
ComboPooledDataSource cpds;
cpds = new ComboPooledDataSource();
this.cpds.setDriverClass(dataSource.getDriverClass());
cpds.setJdbcUrl(dataSource.getJdbcUrl());
cpds.setUser(dataSource.getUser());
cpds.setPassword(dataSource.getPassword());
cpds.setMinPoolSize(dataSource.getMinPoolSize());
cpds.setAcquireIncrement(dataSource.getAcquireIncrement());
cpds.setMaxPoolSize(dataSource.getMaxPoolSize());
cpds.setMaxStatements(dataSource.getMaxStatements());
ScheduledThreadPoolExecutor
延迟定时任务连接池,java原生api。
ChronoUnit
提供了一些时间的计算,这是一个不可变的和线程安全的枚举api。jdk1.8才有的
例如:
//获取同步起始和结束的时间的间隔天数
long p = ChronoUnit.DAYS.between(startLocalDate, endLocalDate);
Instant
操作时间里程碑的一个api。