展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

spring中工具类

  • 案例1
import org.junit.Test;
import org.springframework.util.ClassUtils;

public class ClassUtilsTest {
    /**
     * 判断当前应用是否加载了com.roadjava.Zhao这样一个类
     * 应用场景:
     *  当某个类存在后再做某些事情
     */
    @Test
    public void test1() {
        String className = "com.roadjava.Zhao";
//        try {
////            Class.forName(className);
//            ClassUtilsTest.class.getClassLoader().loadClass(className);
//        } catch (ClassNotFoundException e) {
//            e.printStackTrace();
//        }
        className = "com.roadjava.utils.apache.lang.ArrayUtilsTest";
        System.out.println(ClassUtils.isPresent(className, null));
    }
}
  • 案例2
import com.roadjava.utils.spring.bean.ZhangSan;
import org.junit.Test;
import org.springframework.util.ReflectionUtils;

public class ReflectionUtilsTest {
    @Test
    public void test1() {
        // 获取到本类以及所有的父类(包含父类的父类....)的所有属性
        ReflectionUtils.doWithFields(ZhangSan.class, field ->
                System.out.println(field.getName())
        );
        // 获取到本类以及所有的父类(包含父类的父类....)的所有方法
        ReflectionUtils.doWithMethods(ZhangSan.class, method ->
                System.out.println(method.getDeclaringClass().getName()+"的"+method.getName())
        );
        ZhangSan zhangSan = new ZhangSan();
        zhangSan.setId(1L);
        // 获取某个属性的值
        ReflectionUtils.doWithFields(ZhangSan.class, field ->{
            field.setAccessible(true);
            Object fieldValue = ReflectionUtils.getField(field, zhangSan);
            System.out.println(fieldValue);
        });

    }
}
  • 案例3
import com.roadjava.utils.spring.bean.ZhangSan;
import org.junit.Test;
import org.springframework.beans.BeanUtils;

public class BeanUtilsTest {
    /**
     * mapstruct
     */
    @Test
    public void test1(){
        ZhangSan zhangSan1 = new ZhangSan();
        zhangSan1.setId(1L);
        zhangSan1.setMyProp("myProp");
        zhangSan1.setName("张三");

        ZhangSan target = new ZhangSan();
        BeanUtils.copyProperties(zhangSan1,target);
        System.out.println(target);
    }
}
  • 案例4
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.util.FileCopyUtils;
import java.io.FileOutputStream;
import java.nio.charset.StandardCharsets;

public class FileCopyUtilsTest {
    @Test
    public void test1() throws Exception{
        // 获取类路径下的资源
        ClassPathResource resource = new ClassPathResource("files/1.txt");
        EncodedResource encodedResource = new EncodedResource(resource, StandardCharsets.UTF_8);

        String targetPath = "E:\\ideaProjects2\\utils-demo\\src\\test\\resources\\files\\2.txt";
        FileCopyUtils.copy(encodedResource.getInputStream(),new FileOutputStream(targetPath));
    }
}
  • 案例5
import com.roadjava.utils.spring.bean.BaseDao;
import com.roadjava.utils.spring.bean.Person;
import com.roadjava.utils.spring.bean.UserDao;
import org.junit.Test;
import org.springframework.core.GenericTypeResolver;

public class GenericTypeResolverTest {
    @Test
    public void test1() {
        new UserDao().insert(new Person());
        // com.roadjava.utils.spring.bean.Person 解析泛型类型的参数
        Class<?> aClass = GenericTypeResolver.resolveTypeArgument(UserDao.class, BaseDao.class);
        System.out.println(aClass.getName());
    }
}
posted @ 2022-10-03 20:28  DogLeftover  阅读(49)  评论(0)    收藏  举报