spring复习:(6) AbstractBeanDefinition

这篇具有很好参考价值的文章主要介绍了spring复习:(6) AbstractBeanDefinition。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

private volatile Object beanClass;
这个变量用来保存bean对应的类,该变量可能为String类型,也可能为Class<?>类型。
操作它的几个主要方法:文章来源地址https://www.toymoban.com/news/detail-538942.html

	@Override
	public void setBeanClassName(@Nullable String beanClassName) {
		this.beanClass = beanClassName;
	}

	@Override
	@Nullable
	public String getBeanClassName() {
		Object beanClassObject = this.beanClass;
		if (beanClassObject instanceof Class) {
			return ((Class<?>) beanClassObject).getName();
		}
		else {
			return (String) beanClassObject;
		}
	}

	/**
	 * Specify the class for this bean.
	 */
	public void setBeanClass(@Nullable Class<?> beanClass) {
		this.beanClass = beanClass;
	}

	/**
	 * Return the class of the wrapped bean (assuming it is resolved already).
	 * @return the bean class (never {@code null})
	 * @throws IllegalStateException if the bean definition does not define a bean class,
	 * or a specified bean class name has not been resolved into an actual Class yet
	 * @see #hasBeanClass()
	 * @see #setBeanClass(Class)
	 * @see #resolveBeanClass(ClassLoader)
	 */
	public Class<?> getBeanClass() throws IllegalStateException {
		Object beanClassObject = this.beanClass;
		if (beanClassObject == null) {
			throw new IllegalStateException("No bean class specified on bean definition");
		}
		if (!(beanClassObject instanceof Class)) {
			throw new IllegalStateException(
					"Bean class name [" + beanClassObject + "] has not been resolved into an actual Class");
		}
		return (Class<?>) beanClassObject;
	}

到了这里,关于spring复习:(6) AbstractBeanDefinition的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java知识复习(八)Spring基础

    Spring :是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性 Spring主要指Spring Framework,就是指如上图所示的各项功能模块 SpringMVC主要指一种架构,MVC分别是Model模型、View视图、Controller控制器的简写,核心思想就是将数据、显示和业务逻辑分

    2023年04月18日
    浏览(43)
  • spring复习: (16) AbstractBeanFactory之doCreateBean

    总体流程: 一、 先调用getSingleton,尝试从缓存中获取bean 如果获取bean成功,则调用getObjectForBeanInstance(sharedInstance, name, beanName, null); 该方法主要是通过区分普通bean和工厂bean来决定是返回原始的bean还是工厂bean通过调用getObject方法产生的bean. 二、如果第一步中sharedInstance为null,则

    2024年02月15日
    浏览(32)
  • Spring复习:(1) DefaultListableBeanFactory和BeanDefinitionReader

    一、beans11.xml: 二、Student类: 三、主类:

    2024年02月12日
    浏览(29)
  • spring复习:(39)注解方式的ProxyFactoryBean

    一、定义接口 二、定义实现类: 三、定义配置类,配置业务bean、advisor bean、ProxyFactoryBean 四、定义主类,获取ProxyFactoryBean并使用 五、运行结果

    2024年02月16日
    浏览(36)
  • spring复习:(18)给bean的属性赋值

    类: AbstractAutowireCapableBeanFactory: 其中populateBean用来用我们配置文件里的属性来给bean的属性赋值: 其中applyPropertyValues(beanName, mbd, bw, pvs);真正进行了赋值. 其中调用了bw.setPropertyValues:,代码: setPropertyValues代码: 其中调用了:setPropertyValue(pv);这个方法的代码: 调用setPropertyVal

    2024年02月16日
    浏览(36)
  • spring复习:(34)配置文件的方式创建ProxyFactoryBean

    一、配置文件 二、实现类: 三、主类: 四、运行结果

    2024年02月16日
    浏览(34)
  • spring复习:(42)配置文件的方式实现事务(TransactionProxyFactoryBean)

    一、定义服务接口: 二、定义服务实现类 三、配置文件: 四、主类,调用TransactionProxyFactoryBean

    2024年02月16日
    浏览(36)
  • 2023年了,复习了一下spring boot配置使用mongodb

    MongoDB是一个基于分布式文件存储的开源数据库系统,使用C++语言编写。它是一个介于关系数据库和非关系数据库之间的产品,具有类似关系数据库的功能,但又有一些非关系数据库的特点。MongoDB的数据模型比较松散,采用类似json的bson格式,可以灵活地存储各种类型的数据

    2024年02月08日
    浏览(59)
  • Spring复习:(55)ApplicationContext中BeanFactoryPostProcessor是怎么添加到容器的?

    容器创建时会调用AbstractApplicationContext的refresh方法,其中会调用invokeBeanFactoryPostProcessor方法,如下图 invokeBeanFactoryPostProcessors代码如下: 其中调用的PostProcessorRegistrationDelegate的invokeBeanFactoryPostProcessors方法代码如下: 可以从上图看到,首先获取类型为BeanFactoryPostProcessor的所有

    2024年02月11日
    浏览(38)
  • spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?

    在AbstractBeanFactory的doGetBean方法: 调用的getObjectForBeanInstance方法部分代码如下: 如果不是工厂bean,则直接将实例返回,否则调用getObjectFromFactoryBean方法获取工厂bean的getObject方法返回的对象 其中调用了doGetObjectFromFactoryBean方法,代码如下: 可以看到工厂bean的getObject方法被调用

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包