Spring 中 个getBean 的作用是什么

Spring 中 个getBean 的作用是什么,第1张

getBean是用来获取applicationContextxml文件里bean的,()写的是bean的id。

一种是singleton,一种是prototype,默认的是singleton,这种定义的bean实例作用是与spring的容器一致的,只有spring容器初始化,调用getBean得到的singleton实例始终是同一个bean的实例spring定义的bean有两种作用范围,是每当调用getBean得到实例的时候spring都会new一个实例来给你,而prototype的实例。

程序如下:

1 ServletContext context = configgetServletContext();

2 ApplicationContext ac = WebApplicationContextUtils

3 getWebApplicationContext(context);

4 TestBean testBean = (TestBean) acgetBean("testBean");

第一种方式:FileSystemXmlApplicationContext通过程序在初始化的时候,导入Bean配置文件,然后得到Bean实例:ApplicationContextac=newFileSystemXmlApplicationContext(applicationContextxml)acgetBean(beanName);第二种方式:WebApplicationContextUtil在B/S系统中,通常在webxml初始化bean的配置文件,然后由WebAppliCationContextUtil得到ApplicationContext例如:ApplicationContextctx=WebApplicationContextUtilsgetRequiredWebApplicationContext(ServletContextsc);ApplicationContextctx=WebApplicationContextUtilsgetWebApplicationContext(ServletContextsc);其中servletContext sc 可以具体 换成 servletgetServletContext()或者 thisgetServletContext()或者requestgetSession()getServletContext();另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出WebApplicationContext 对象:WebApplicationContext webApplicationContext = (WebApplicationContext) servletContextgetAttribute(WebApplicationContextROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);下面几种方式没有用过,

只要搜一下“获取 spring bean”,获取spring bean的N中方法都出来了。线程中获取和普通类中获取方法是一样的。

下面是一种方法。这个类需要配置在Spring中。

使用的时候直接:Bean bean = SpringUtilgetBean("bean的id", Beanclass);//Beanclass是bean的类对象,比如获取 UserService的bean,就是:

1

UserService us = SpringUtilgetBean("userService", UserServiceclass);

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 orgspringframeworkbeansBeansException;

import orgspringframeworkcontextApplicationContext;

import orgspringframeworkcontextApplicationContextAware;

/

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 = applicationContextgetBean(id, requiredType);

return t;

}

}

首先读取applicationContextxml,解析文档,文档有你需要beans,然后根据这个配置文档,通过反射机制实例化beans,然后你getbean(“beanName”);就能获取了,看看spring实现源码。 我说得比较简单,但是机制差不多就是这么个机制,

以上就是关于Spring 中 个getBean 的作用是什么全部的内容,包括:Spring 中 个getBean 的作用是什么、spring mvc中如何获取bean、Spring框架下获取Bean的几种方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9709636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存