From: https://blog.csdn.net/danielzhou888/article/details/83351913
本示例解决springboot中service无法注入普通jopo的问题。
不啰嗦,直接上代码。
如果该示例帮您解决了问题,请助推哦。
pojo类:
package com.scmd.controller;
import com.scmd.service.IWxaccesstokenService;
import com.scmd.utils.ApplicationContextProvider;
import lombok.Data;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Administrator on 2018/10/24.
*/
@Data
@Component
public class AccessToken {
private static String access_token = null;
public static final Map<String,Object> cache = new HashMap<String,Object>();
public AccessToken(String access_token) {
this.access_token = access_token;
}
public AccessToken() {
}
public void updateAccessToken(Map<String,Object> cache) {
IWxaccesstokenService wxservice = ApplicationContextProvider.getBean(IWxaccesstokenService.class);
cache.put("access_token",wxservice.findByIdEntity(1).getAccesstoken());
}
}
ApplicationContext辅助类:
package com.scmd.utils;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
/**
* Created by Administrator on 2018/10/24.
*/
@Component
public class ApplicationContextProvider{
private static ApplicationContext applicationContext;
public static void setApplicationContext(ApplicationContext context) {
applicationContext = context;
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}
public static <T> T getBean(String name, Class<T> clazz) {
return getApplicationContext().getBean(name, clazz);
}
}
启动类:
package com.scmd;
import com.scmd.utils.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
@ServletComponentScan
public class ScmdApplication {
private static final Logger logger = LoggerFactory.getLogger(ScmdApplication.class);
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(ScmdApplication.class, args);
// 向辅助类注入ApplicationContext
ApplicationContextProvider.setApplicationContext(applicationContext);
}
}