反射调用Service层方法,@Autowired注解失效。问题解决

反射调用方法时,里面的dao层注解失败。空指针异常。

原因很简单,反射和new有点像。没通过spring管理。

解决方案1:

@Service
public class Service {
 
	@Autowired
    private Mapper mapper;
	
	//新增静态变量
	public static Service proxy;
	
	@PostConstruct
	public void init() {   
			proxy = this;
	} 
}

调用用的时候:proxy.mapper.XXXX

@PostConstruct说明

     被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

目前觉得比较好的解决方案。

 

你可能感兴趣的:(JAVA)