Springboot让普通类可以调用Service的服务
我们经常碰到 需要在util中调用service层服务的情况。那么我们今天就来说一下如何调用
我们话不多说 直接上代码
/**
* @Author: rainstorm_稚语
* @Description: 该工具类是固定写法,用于让其它普通类可以调用Service层的服务
* @Date: 2022-9-09
*/
public class SpringContextUtil implements ApplicationContextAware{
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringContextUtil.applicationContext == null){
SpringContextUtil.applicationContext = applicationContext;
}
System.out.println("---------------------------------------------------------------------");
System.out.println("========ApplicationContext配置成功,在普通类可以通过调用SpringUtils.getAppContext()获取applicationContext对象,applicationContext="+SpringContextUtil.applicationContext+"========");
}
/**
* @description 获取applicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* @description 通过name获取 Bean
*/
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
/**
* @description 通过class获取Bean
*/
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
/**
* @description 通过name,以及Clazz返回指定的Bean
*/
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
然后需要再在启动类中加入对其的引用:
/**
* @author rainstorm_稚语
* @description @Import注解为:让自定义的工具类自动导入
*/
@SpringBootApplication
@EnableRedisHttpSession
**@Import(SpringContextUtil.class)**
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}
至此结束,码字不易,感谢支持