1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package com.fdkankan.web.util;
- import org.springframework.beans.BeansException;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.ApplicationContextAware;
- import org.springframework.stereotype.Component;
- import java.util.Map;
- /**
- * 实现ApplicationContextAware接口,并加入Component注解,让spring扫描到该bean
- * 该类用于在普通Java类中注入bean,普通Java类中用@Autowired是无法注入bean的
- */
- @Component
- public class SpringUtil implements ApplicationContextAware {
- private static ApplicationContext applicationContext;
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- if(SpringUtil.applicationContext == null) {
- SpringUtil.applicationContext = applicationContext;
- }
- }
- /**
- * 获取applicationContext
- */
- public static ApplicationContext getApplicationContext() {
- return applicationContext;
- }
- /**
- *通过name获取 Bean.
- * @param name
- * @return
- */
- public static Object getBean(String name){
- return getApplicationContext().getBean(name);
- }
- /**
- * 通过class获取Bean.
- * @param clazz
- * @param <T>
- * @return
- */
- public static <T> T getBean(Class<T> clazz){
- return getApplicationContext().getBean(clazz);
- }
- /**
- * 通过name,以及Clazz返回指定的Bean
- * @param name
- * @param clazz
- * @param <T>
- * @return
- */
- public static <T> T getBean(String name,Class<T> clazz){
- return getApplicationContext().getBean(name, clazz);
- }
- public <T> Map<String, T> getBeansOfType(Class<T> clazz) {
- return applicationContext.getBeansOfType(clazz);
- }
- }
|