Spring5框架工具类

日常开发使用工具类

       ①、JDK自带工具类,rt.jar中的工具类

       

       ②、Apache开源组织下:commons-lang3、commons-collections4

       

       

      ③、Spring框架自带工具类【本文介绍】

      ④、众多开源软件或多或少都会写一些自己的工具类在软件中,还有一些好用的如Guava、HuTool等

     【选择工具包以项目组的统一规定吧,方便软件管理、减少jar包冲突】 

   二、Spring框架自带工具类

      ①、Spring工具包位置,在Spring的core模块下。org.springframework.util

       

      ②、断言工具类:Assert

         

    ③、集合工具类:CollectionUtils

     

  ④、字符串工具类  StringUtils

   

 ⑤、反射工具类 ReflectionUtils

 

 ⑥、MD5加密工具类

⑦、类工具ClassUtils

⑧、数字处理类Base64Utils

⑨、序列化和反序列化工具类SerializationUtils

⑩、WebUtils:包路径:org.springframework.web.util

属性文件操作:org.springframework.core.io.support

PropertiesLoaderUtils 允许您直接通过基于类路径的文件地址加载属性资源

FileSystemResource 以文件系统绝对路径的方式进行访问;

ClassPathResource 以类路径的方式进行访问;

ServletContextResource 以相对于 Web 应用根目录的方式进行访问。

ResourceUtils 它支持“classpath:”和“file:”的地址前缀,它能够从指定的地址加载文件资源,常用方法:getFile();

StopWatch  一个很好的用于记录执行时间的工具类, 且可以用于任务分阶段的测试时间

HttpStatus: org.springframework.http:Http的状态码

HttpMethod:Http的方法

EncodedResource:当您使用 Resource 实现类加载文件资源时,它默认采用操作系统的编码格式。如果文件资源采用了特殊的编码格式(如 UTF-8),则在读取资源内容时必须事先通过 EncodedResource 指定编码格式,否则将会产生中文乱码的问题。

实用的持续更新,Spring框架的表命名,模块下支持的通常一support命名.

附录Spring事务失效场景

线程隔离工具类封装

不支持子线程获取父线程值的并发线程隔离工具类:ThreadLocal

支持子线程获取父线程值的并发线程隔离工具类:InheritableThreadLocal

Spring框架加了一个构造器的命名类,方便使用.

源码如下:

package org.springframework.core;

import org.springframework.util.Assert;

/**
 * {@link ThreadLocal} subclass that exposes a specified name
 * as {@link #toString()} result (allowing for introspection).
 *
 * @author Juergen Hoeller
 * @since 2.5.2
 * @param <T> the value type
 * @see NamedInheritableThreadLocal
 */
public class NamedThreadLocal<T> extends ThreadLocal<T> {

	private final String name;


	/**
	 * Create a new NamedThreadLocal with the given name.
	 * @param name a descriptive name for this ThreadLocal
	 */
	public NamedThreadLocal(String name) {
		Assert.hasText(name, "Name must not be empty");
		this.name = name;
	}

	@Override
	public String toString() {
		return this.name;
	}

}

Tips:扩展开源类,继承+设置自定义属性.

SpringBean的生命周期

一个bean的生命周期的主要阶段如下:

实例化(Instantiation)
填充属性(Populate Properties)
BeanNameAware设置(BeanNameAware set)
BeanFactoryAware设置(BeanFactoryAware set)
前置初始化(Post Process Before Initialization)
初始化(Initialization)
后置初始化(Post Process After Initialization)
销毁(Destroy)

@PostConstruct 的使用和特点:

  • 只有一个非静态方法能使用此注解;
  • 被注解的方法不得有任何参数;
  • 被注解的方法返回值必须为void;
  • 被注解方法不得抛出已检查异常;
  • 此方法只会被执行一次;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道之简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值