springboot靜態工具類bean注入


工具類中調用數據。但是由於工具類方法一般都寫成static,所以直接注入就存在問題。

所以寫成了這樣:

package com.rm.framework.core;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.web.context.WebApplicationContext;

import javax.annotation.PostConstruct;

@Component
public class RivuDataContext {

	/** 應用上下文 */
	public static String webRoot = "/r3";
	/** 應用上下文 */
	public static String cookieNameLoginToken = "LoginToken";
	
	/** 當前線程用戶名 */
	public final static String USER_SESSION_NAME = "curUser";
	
	/** spring上下文 */
	@Autowired
	private  ConfigurableApplicationContext applicationContext;

	private static 	RivuDataContext rivuDataContext;

	@PostConstruct
	public void init() {
		rivuDataContext = this;
		rivuDataContext.applicationContext = this.applicationContext;

	}

	public static void setApplicationContext(ConfigurableApplicationContext webApplicationContext) {
		rivuDataContext.applicationContext= webApplicationContext;
	}

	public static ConfigurableApplicationContext getApplicationContext() {
		return rivuDataContext.applicationContext;
	}
	
	public static Object getBean(String beanName){
		return rivuDataContext.applicationContext.getBean(beanName);
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM