
artoria.spring.ApplicationContextUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of artoria-extend Show documentation
Show all versions of artoria-extend Show documentation
Artoria is a java technology framework based on the facade pattern.
The newest version!
package artoria.spring;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
/**
* The spring project "ApplicationContext" tools.
* @author Kahle
* @see org.springframework.context.ApplicationContext
*/
public class ApplicationContextUtils {
private static ApplicationContext context = null;
public static ApplicationContext getContext() {
return context;
}
public static void setContext(ApplicationContext context) {
ApplicationContextUtils.context = context;
}
public static Object getBean(String name) {
return getContext().getBean(name);
}
public static Object getBean(String name, Object... args) {
return getContext().getBean(name, args);
}
public static T getBean(String name, Class requiredType) {
return getContext().getBean(name, requiredType);
}
public static T getBean(Class requiredType) {
return getContext().getBean(requiredType);
}
public static T getBean(Class requiredType, Object... args) {
return getContext().getBean(requiredType, args);
}
public static void registerBean(String name, BeanDefinitionBuilder beanDefinitionBuilder) {
// Beans registered by this method can only be obtained by "ApplicationContext.getBean"
// and cannot be obtained by "Autowired".
// "BeanDefinitionBuilder.rootBeanDefinition(clazz);" parent bean
// "BeanDefinitionBuilder.childBeanDefinition(clazz);" child bean
// "BeanDefinitionBuilder.genericBeanDefinition(clazz);" generic bean
BeanDefinition beanDefinition = beanDefinitionBuilder.getBeanDefinition();
ConfigurableApplicationContext applicationContext = (ConfigurableApplicationContext) getContext();
BeanDefinitionRegistry beanDefinitionRegistry = (BeanDefinitionRegistry) applicationContext.getBeanFactory();
beanDefinitionRegistry.registerBeanDefinition(name, beanDefinition);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy