展开
拓展 关闭
订阅号推广码
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 @   DogLeftover  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示