springboot 静态方法中使用@Autowired注入配置和Bean

2023-02-16 15:20:02 浏览数 (3)

@Autowired

代码语言:javascript复制
@Component
public class StructUtil {

    private static RestTemplate restTemplate;
	private static String API_KEY;
	
	// 通过重写set注入
    @Autowired
    public void setRestTemplate(RestTemplate restTemplate) {
        StructUtil.restTemplate = restTemplate;
    }
    
    @Value("${tripartite.setting.apiKey}")
    public void setApiKey(String apiKey) {
        StructUtil.API_KEY = apiKey;
    }

    public static void getStruct(){
      System.out.println(API_KEY);
      System.out.println(restTemplate);
    }
}

@PostConstruct注入

在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。

代码语言:javascript复制
@Component
public class WeChatContant {

    @Autowired
    private RestTemplate restTemplate2;
    private static RestTemplate restTemplate;
    
    @PostConstruct
    public void init(){
        restTemplate= restTemplate2;
    }
   
   
    public static JSONObject doGerStr(String url){
       System.out.println(restTemplate);
       return null;
    }
}

0 人点赞