工具类Utils中注入Service运行时为null

最近有个需求是要对上传的xml进行规则校验,写完了方法后发现,这部分代码太多了,不适合挤在一个类中,就想着提出来当工具类,后来发现提取出来后,注入的Server为null
在这里插入图片描述
后来加了@Component也没用,后面找到一篇博客工具类Util中如何注解注入Service不报空就解决了,在此记录下.

/*
 * 第一步:工具类一定要用@component进行注解
 */
@Component
public class XMLValidatorUtils{
	@Autowired
	private ShareCodesService ShareCodesService ;
	/*
	 * 第二步:建一个静态的本类
	 */
    private static XMLValidatorUtils xmlValidatorUtils;
	/*
	 * 第三步:将本类初始化
	 * @PostConstruct 注解的作用是标注当前方法在项目启动的时候就执行,也可以理解为在Spring容器启动的时候执行,并且只执行一次,可作为一些数据的常规化加载,比如数据字典之类
	 */
	@PostConstruct
	private void init() {
		  xmlValidatorUtils = this;
        xmlValidatorUtils.gtbshareCodesService = this.gtbshareCodesService;
	}

	public static List<SysButtons> methodName( String attr) {
			// 执行需要使用的server方法
			xmlValidatorUtils.gtbshareCodesService.findByType(type, node.getText());、
			// xxx
		return null;
	}
}

@PostConstruct 点进去可以看到是来自package javax.annotation; 是Java自己的注解

源码中的注释
在这里插入图片描述
这个注解@PostConstruct的作用大概就是被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。
找了张网图⬇
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值