如何在线程中获取spring 管理的bean
1个回答
展开全部
只要搜一下“获取 spring bean”,获取spring bean的N中方法都出来了。线程中获取和普通类中获取方法是一样的。
下面是一种方法。这个类需要配置在Spring中。
使用的时候直接:Bean bean = SpringUtil.getBean("bean的id", Bean.class);//Bean.class是bean的类对象,比如获取 UserService的bean,就是:
1
UserService us = SpringUtil.getBean("userService", UserService.class);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* Spring IOC上下文工具类
* @ClassName: SpringUtil
* @Description:
* @author
* @date 2014-6-21 下午02:06:48
*/
public class SpringUtil implements ApplicationContextAware {
/**
* 当前IOC
*/
private static ApplicationContext applicationContext;
/**
* 设置当前上下文环境,此方法由spring自动装配
*/
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
applicationContext = arg0;
}
/**
* 从当前IOC获取bean
* @param id
* bean的id
* @return
*/
public static <T> T getBean(String id, Class<T> requiredType) {
T t = applicationContext.getBean(id, requiredType);
return t;
}
}
下面是一种方法。这个类需要配置在Spring中。
使用的时候直接:Bean bean = SpringUtil.getBean("bean的id", Bean.class);//Bean.class是bean的类对象,比如获取 UserService的bean,就是:
1
UserService us = SpringUtil.getBean("userService", UserService.class);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* Spring IOC上下文工具类
* @ClassName: SpringUtil
* @Description:
* @author
* @date 2014-6-21 下午02:06:48
*/
public class SpringUtil implements ApplicationContextAware {
/**
* 当前IOC
*/
private static ApplicationContext applicationContext;
/**
* 设置当前上下文环境,此方法由spring自动装配
*/
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
applicationContext = arg0;
}
/**
* 从当前IOC获取bean
* @param id
* bean的id
* @return
*/
public static <T> T getBean(String id, Class<T> requiredType) {
T t = applicationContext.getBean(id, requiredType);
return t;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询