本章没有具体的内容需要讲述,只是把几个现成的工具类放在这里这里,后面教程的代码会用到他们。

26.1 应用程序运行状态的枚举类

  1. package com.longser.utils.enums;
  2. import org.springframework.lang.NonNull;
  3. /**
  4. * @author David
  5. */
  6. public enum ApplicationState{
  7. //开发
  8. DEVELOPMENT("dev"),
  9. //测试
  10. TESTING("test"),
  11. //生产系统
  12. PRODUCTION("prod"),
  13. ;
  14. private final String code;
  15. ApplicationState(String code) {
  16. this.code = code;
  17. }
  18. public String toString() {
  19. return this.code;
  20. }
  21. public boolean is(@NonNull String state) {
  22. return state.equalsIgnoreCase(toString());
  23. }
  24. }

26.2 仿 Gson 方法风格的工具类

  1. package com.longser.utils;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. /**
  5. * 方便书写 Jackson 代码的 仿 Google Json 类
  6. * @author david
  7. */
  8. public class Json {
  9. private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
  10. /**
  11. * 仿 Google Json 的方法,把对象转换成 Jsong 字符串
  12. * @param src 待转换的对象
  13. * @return 转换好的字符串。如果源对象为空,转换结果为空字符串 ""。如果发生异常则返回 null。
  14. */
  15. public static String toJSon(Object src) {
  16. if(src == null) {
  17. return "";
  18. }
  19. try {
  20. return OBJECT_MAPPER.writeValueAsString(src);
  21. } catch (JsonProcessingException ex) {
  22. ex.printStackTrace();
  23. }
  24. return null;
  25. }
  26. }

26.3 管理 Spring 上下文的工具类

  1. package com.longser.utils;
  2. import org.springframework.beans.factory.NoSuchBeanDefinitionException;
  3. import org.springframework.context.ApplicationContext;
  4. /**
  5. * Spring 上下文管理工具类,在事先保存的应用程序上下文(ApplicationContext)中
  6. * 查找 Bean
  7. * @author David Jia
  8. */
  9. public class SpringContextUtil {
  10. private static ApplicationContext applicationContext;
  11. /**
  12. * 返回事先保存的 ApplicationContext
  13. * @return 事先保存的 ApplicationContext
  14. */
  15. public static ApplicationContext getApplicationContext() {
  16. return applicationContext;
  17. }
  18. /**
  19. * 保存 事先保存的 ApplicationContext。一般在 SpringBootApplication 的 Main 方法中
  20. * 被调用,通常用法如下:
  21. * <code>
  22. * public static void main(String[] args) {
  23. * ApplicationContext appCtx = SpringApplication.run(MyApplication.class, args);
  24. * SpringContextUtil.setApplicationContext(appCtx);
  25. * }
  26. * </code>
  27. * @param applicationContext 指定的应用程序igxbwr
  28. */
  29. public static void setApplicationContext(ApplicationContext applicationContext) {
  30. SpringContextUtil.applicationContext = applicationContext;
  31. }
  32. /**
  33. * 通过名字获取上下文中的bean
  34. * @param name 需要查找的 Bean 的名字
  35. * @return 需要嗯 Bean
  36. */
  37. public static Object getBean(String name) {
  38. try {
  39. return applicationContext.getBean(name);
  40. } catch (NoSuchBeanDefinitionException ex) {
  41. return null;
  42. }
  43. }
  44. /**
  45. * 通过类型获取上下文中的bean
  46. * @param requiredType 需要获取的Bean的类型
  47. * @return 需要嗯 Bean
  48. */
  49. public static Object getBean(Class<?> requiredType) {
  50. return applicationContext.getBean(requiredType);
  51. }
  52. }

26.4 保存文件的工具类

  1. package com.longser.utils.file;
  2. import java.io.IOException;
  3. import java.io.RandomAccessFile;
  4. @SuppressWarnings("unused")
  5. public class FileUtil {
  6. public static void writeFile(String filePath, byte[] data) throws IOException {
  7. RandomAccessFile raf = null;
  8. try {
  9. raf = new RandomAccessFile(filePath, "rw");
  10. raf.write(data);
  11. } finally {
  12. if (raf != null) {
  13. raf.close();
  14. }
  15. }
  16. }
  17. public static byte[] readFile(String filePath) throws IOException {
  18. byte[] data;
  19. try (RandomAccessFile raf = new RandomAccessFile(filePath, "r")) {
  20. data = new byte[(int) raf.length()];
  21. raf.read(data);
  22. return data;
  23. }
  24. }
  25. }

版权说明:本文由北京朗思云网科技股份有限公司原创,向互联网开放全部内容但保留所有权力。