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);// 向辅助类注入ApplicationContextApplicationContextProvider.setApplicationContext(applicationContext);
}
}