本章没有具体的内容需要讲述,只是把几个现成的工具类放在这里这里,后面教程的代码会用到他们。
26.1 应用程序运行状态的枚举类
package com.longser.utils.enums;
import org.springframework.lang.NonNull;
/**
* @author David
*/
public enum ApplicationState{
//开发
DEVELOPMENT("dev"),
//测试
TESTING("test"),
//生产系统
PRODUCTION("prod"),
;
private final String code;
ApplicationState(String code) {
this.code = code;
}
public String toString() {
return this.code;
}
public boolean is(@NonNull String state) {
return state.equalsIgnoreCase(toString());
}
}
26.2 仿 Gson 方法风格的工具类
package com.longser.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* 方便书写 Jackson 代码的 仿 Google Json 类
* @author david
*/
public class Json {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
/**
* 仿 Google Json 的方法,把对象转换成 Jsong 字符串
* @param src 待转换的对象
* @return 转换好的字符串。如果源对象为空,转换结果为空字符串 ""。如果发生异常则返回 null。
*/
public static String toJSon(Object src) {
if(src == null) {
return "";
}
try {
return OBJECT_MAPPER.writeValueAsString(src);
} catch (JsonProcessingException ex) {
ex.printStackTrace();
}
return null;
}
}
26.3 管理 Spring 上下文的工具类
package com.longser.utils;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
/**
* Spring 上下文管理工具类,在事先保存的应用程序上下文(ApplicationContext)中
* 查找 Bean
* @author David Jia
*/
public class SpringContextUtil {
private static ApplicationContext applicationContext;
/**
* 返回事先保存的 ApplicationContext
* @return 事先保存的 ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 保存 事先保存的 ApplicationContext。一般在 SpringBootApplication 的 Main 方法中
* 被调用,通常用法如下:
* <code>
* public static void main(String[] args) {
* ApplicationContext appCtx = SpringApplication.run(MyApplication.class, args);
* SpringContextUtil.setApplicationContext(appCtx);
* }
* </code>
* @param applicationContext 指定的应用程序igxbwr
*/
public static void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* 通过名字获取上下文中的bean
* @param name 需要查找的 Bean 的名字
* @return 需要嗯 Bean
*/
public static Object getBean(String name) {
try {
return applicationContext.getBean(name);
} catch (NoSuchBeanDefinitionException ex) {
return null;
}
}
/**
* 通过类型获取上下文中的bean
* @param requiredType 需要获取的Bean的类型
* @return 需要嗯 Bean
*/
public static Object getBean(Class<?> requiredType) {
return applicationContext.getBean(requiredType);
}
}
26.4 保存文件的工具类
package com.longser.utils.file;
import java.io.IOException;
import java.io.RandomAccessFile;
@SuppressWarnings("unused")
public class FileUtil {
public static void writeFile(String filePath, byte[] data) throws IOException {
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(filePath, "rw");
raf.write(data);
} finally {
if (raf != null) {
raf.close();
}
}
}
public static byte[] readFile(String filePath) throws IOException {
byte[] data;
try (RandomAccessFile raf = new RandomAccessFile(filePath, "r")) {
data = new byte[(int) raf.length()];
raf.read(data);
return data;
}
}
}
版权说明:本文由北京朗思云网科技股份有限公司原创,向互联网开放全部内容但保留所有权力。