优化的网站做域名跳转,个人网页参考,熊掌号如何做网站,宁皓 wordpress环境#xff1a;Spring5.3…30 1、资源工具类
ResourceUtils将资源位置解析为文件系统中的文件的实用方法。
读取classpath下文件
File file ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX logback.xml) ;
// ...读取文件系统文件
file Resou… 环境Spring5.3…30 1、资源工具类
ResourceUtils将资源位置解析为文件系统中的文件的实用方法。
读取classpath下文件
File file ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX logback.xml) ;
// ...读取文件系统文件
file ResourceUtils.getFile(ResourceUtils.FILE_URL_PREFIX D:\\pom.xml) ;支持以下前缀的文件
public static final String CLASSPATH_URL_PREFIX classpath:;
public static final String FILE_URL_PREFIX file:;
public static final String JAR_URL_PREFIX jar:;
public static final String WAR_URL_PREFIX war:;2、对象工具类
对象转数组
Object obj new int[] {1, 2, 3, 4} ;
Object[] arr ObjectUtils.toObjectArray(obj) ;数组添加新元素
Integer[] obj new Integer[] {1, 2, 3, 4} ;
Integer[] ret ObjectUtils.addObjectToArray(obj, 5) ;判断元素是否存在
Integer[] obj new Integer[] {1, 2, 3, 4} ;
ObjectUtils.containsElement(ret, 5)3、数组转换
转换到指定类型
Number n 10D ;
NumberUtils.convertNumberToTargetClass(n, Double.class) ;解析数字
Long ret NumberUtils.parseNumber(10, Long.class) ;
System.out.println(ret) ;4、Stream流操作
文件流复制到内存中
FileInputStream fis new FileInputStream(new File(d:\\1.txt)) ;
ByteArrayOutputStream baos new ByteArrayOutputStream() ;
// 文件内容读取到了baos中
StreamUtils.copy(fis, baos) ;文本内容读取到内存中
StreamUtils.copy(abcdef, Charset.forName(UTF-8), baos) ;文件流直接转换为String
FileInputStream fis new FileInputStream(new File(d:\\1.txt)) ;
String content StreamUtils.copyToString(fis, Charset.forName(UTF-8)) ;5、系统属性分析
解析系统属性占位符
String home SystemPropertyUtils.resolvePlaceholders(${java.home}) ;
System.out.println(home) ;6、集合工具类 7、AOP代理工具 判断是否为代理对象
static class UserService {}
public static void main(String[] args) {ProxyFactory factory new ProxyFactory() ;factory.addAdvice(new MethodInterceptor() {Overridepublic Object invoke(MethodInvocation invocation) throws Throwable {return invocation.proceed() ;}});factory.setTarget(new UserService()) ;Object proxy factory.getProxy() ;System.out.println(AopUtils.isAopProxy(proxy)) ;
}判断切入点能否应用到目标类上一般底层开发应用
Retention(RetentionPolicy.RUNTIME)
Target(ElementType.METHOD)
static interface Pack{}
static class UserService {Packpublic void save() {}
}
// 自定义切入点
Pointcut pc new Pointcut() {Overridepublic MethodMatcher getMethodMatcher() {// 方法匹配方法上是否有Pack注解return new AnnotationMethodMatcher(Pack.class) ;}Overridepublic ClassFilter getClassFilter() {// 任意类return ClassFilter.TRUE ;}
};
boolean ret AopUtils.canApply(pc, UserService.class) ;
System.out.println(ret) ;获取代理类的原始对象
Object proxy factory.getProxy() ;
AopProxyUtils.getSingletonTarget(proxy) ;8、BeanFactory工具
在bean工厂上操作的方便方法特别是在ListableBeanFactory接口上。 通过上面的方法可以获取指定BeanFactory中的bean或者包括在父工厂中的。
AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(com.pack) ;
BeanFactoryUtils.beanOfTypeIncludingAncestors(context, UserDAO.class)9、注解工具
用于在AnnotatedElements如MethodFieldClass等上查找注释、元注释和可重复注释的通用实用方法。AnnotatedElementUtils类提供了丰富的方法。
// 是否存在注解
AnnotatedElementUtils.hasAnnotation(UserService.class, Pack.class) ;10.、Bean工具
BeanUtils类提供了实例化bean、检查bean属性类型、复制bean属性等功能。 // 实例化对象
Person person BeanUtils.instantiateClass(Person.class) ;
Person target new Person() ;
// 属性copy
BeanUtils.copyProperties(person, target);
// 查找方法
BeanUtils.findMethod(Person.class, getName) ;
// 根据方法名获取对应的属性
PropertyDescriptor pd BeanUtils.findPropertyForMethod(Person.class.getDeclaredMethod(getName)) ;
System.out.println(pd.getName()) ;11、数据验证
参数验证在SpringMVC中都通过注解的方式。除了注解你也可以通过ValidationUtils工具类使用自定义的验证器进行参数的验证
static class Person {private Integer age ;private String name ;
}
// 自定义验证器
static class PersonValidator implements Validator {Overridepublic boolean supports(Class? clazz) {return Person.class.isAssignableFrom(clazz) ;}Overridepublic void validate(Object target, Errors errors) {Person person (Person) target ;if (person.age null) {errors.reject(age.empty, 年龄不能为空) ;}}
}
public static void main(String[] args) {Validator validator new PersonValidator() ;Person target new Person() ;BeanPropertyBindingResult errors new BeanPropertyBindingResult(target, person) ;ValidationUtils.invokeValidator(validator, target, errors) ;// 错误结果信息System.out.println(errors) ;
}12.、XML解析 DocumentBuilderFactory factory DocumentBuilderFactory.newInstance() ;
DocumentBuilder builder factory.newDocumentBuilder() ;
Document document builder.parse(new ClassPathResource(com/pack/main/utils/person.xml).getInputStream()) ;
Element element document.getDocumentElement() ;
ListElement elements DomUtils.getChildElements(element) ;
elements.forEach(elt - {System.out.println(elt.getTagName() elt.getFirstChild().getNodeValue()) ;
}) ;13、HTML转换 String ret HtmlUtils.htmlEscape(scriptalert(脚本)/script) ;
System.out.println(ret) ;
// 输出
lt;scriptgt;alert(#39;脚本#39;)lt;/scriptgt;14、Web相关 来源Spring全家桶实战案例源码