SpringIOC之BeanExpressionContextAccessor

2023-12-20 15:53:32

博主介绍:?全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验?

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用ChatGPT,微信支付,扫码加群

点击这里预览

🍅开源项目免费哦(有vue2与vue3版本):击这里克隆或者下载? 🍅

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!!

BeanExpressionContextAccessor 是 Spring Framework 中的一个接口,用于扩展 Spring 表达式语言(SpEL)的功能,允许在 SpEL 表达式中访问 Spring 应用程序上下文中的 bean。

通常情况下,SpEL 是用于在 Spring 中进行动态属性访问和计算的一种强大的表达式语言。通过 SpEL,你可以在配置文件中定义和使用表达式,以动态地计算属性值、进行条件评估、调用方法等。BeanExpressionContextAccessor 允许 SpEL 表达式访问 Spring 应用程序上下文中的 bean,以便在表达式中引用这些 bean。

以下是一个示例,演示了如何使用 BeanExpressionContextAccessor:

<bean id="myBean" class="com.example.MyBean">
    <property name="name" value="John" />
</bean>

<bean id="expressionContext" class="org.springframework.context.expression.BeanExpressionContextAccessor" />

<bean class="org.springframework.expression.spel.standard.SpelExpressionParser">
    <property name="beanResolver">
        <bean class="org.springframework.context.expression.BeanFactoryResolver" />
    </property>
</bean>

<bean id="myService" class="com.example.MyService">
    <property name="message" value="#{myBean.sayHello()}" />
</bean>

在上述示例中:

  1. 我们定义了一个名为 myBean 的 bean,它是一个自定义类 MyBean 的实例。
  2. 我们创建了一个名为 expressionContext 的 bean,它是 BeanExpressionContextAccessor 的实例。这个 bean 允许 SpEL 表达式访问 Spring 应用程序上下文中的 bean。
  3. 我们创建了一个 SpEL 表达式解析器,并配置了一个 BeanFactoryResolver,它将允许在 SpEL 表达式中引用 Spring 应用程序上下文中的 bean。
  4. 我们定义了一个名为 myService 的 bean,它是一个自定义类 MyService 的实例。在 message 属性中,我们使用 SpEL 表达式 #{myBean.sayHello()} 来引用 myBean bean 的 sayHello 方法的结果作为属性值。

通过这种方式,BeanExpressionContextAccessor 和 SpEL 可以在 Spring 配置中引用其他 bean 的属性和方法,从而实现更灵活和动态的配置。这在需要动态计算属性或条件化配置时非常有用。

文章来源:https://blog.csdn.net/qq_57756904/article/details/135099365
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。