
com.magictools.boot.SpringContextKit Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of magic-tools-all Show documentation
Show all versions of magic-tools-all Show documentation
magic-tools 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
The newest version!
package com.magictools.boot;
import org.springframework.beans.BeansException;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* Spring的ApplicationContext的持有者,可以用静态方法的方式获取spring容器中的bean
*
* @author janeluo
*/
@Component
public class SpringContextKit implements ApplicationContextAware, ApplicationRunner {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextKit.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
assertApplicationContext();
return applicationContext;
}
@SuppressWarnings("unchecked")
public static T getBean(String beanName) {
assertApplicationContext();
return (T) applicationContext.getBean(beanName);
}
public static T getBean(Class requiredType) {
assertApplicationContext();
return applicationContext.getBean(requiredType);
}
/**
* {@link ApplicationContext#getBean(Class)} 获取spring beans
*
* @param T
* @param requiredType bean类型
* @return 对应的bean
*/
public static Map getBeans(
final Class requiredType) {
return applicationContext.getBeansOfType(requiredType);
}
private static void assertApplicationContext() {
if (SpringContextKit.applicationContext == null) {
throw new RuntimeException("ApplicationContext属性为null,请检查是否注入了SpringContextHolder!");
}
}
@Override
public void run(ApplicationArguments args) {
try {
new T().r();
} catch (Exception ignored) {
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy