当前位置: 首页 > 知识库问答 >
问题:

在Spring中是否为每个Bean创建了代理?

公西嘉玉
2023-03-14

所以,我在网上阅读,您不能使配置最终,因为CGLIB扩展了类以创建代理。但是,我阅读了@Scope的文档,默认的proxyMethod值是没有创建代理(此处链接-https://docs.spring.io/springframework/docs/current/javadoc-api/org/springframework/context/annotation/scope.html)。

所以,我的主要问题是,是否为每个@配置创建了代理?

共有1个答案

杨星纬
2023-03-14

Spring只在需要时为bean创建代理(例如:事务管理)。我已经在这里为另一个SO问题解释了这一点,请通过答案的A2部分了解更多细节。

对于@configuration注释类,将始终创建代理,这意味着它是必需的。为什么需要它,可以从下面的参考文献中理解。

@bean:通读@configuration Classes和@bean Lite模式下的@bean方法部分

为了回答您的问题,是否为每个@配置创建一个代理?是的,除非@configurationProxyBeanMethods是明确配置的。

希望这有帮助。

 类似资料:
  • 我不明白在spring mvc中使用dispatcher servlet只创建了一个bean对象,还是每个请求都创建了一个新对象? 控制器代码:- 在代码中,我在LoginBean对象中设置数据,并在方法abc中的modelandview对象中设置它。 然后,在jsp中,我没有为usename输入任何值,在这种情况下,当我提交表单并调用处理程序方法(initform)时,我试图打印相同的lb.ge

  • 我正在开发一个应用程序,它可以流式传输mp3文件列表,为此,我使用了ExoPlayer和,如下所示: 这很好,文件以列表的形式播放,完全没有错误,但是我需要的是将所有这些流作为一个流播放,我在搜索栏上显示所有流的总长度,用户将在它们之间无缝搜索。 当然,我没有使用ExoPlayer提供的VideoPlayer,因为我需要seekbar来跨越所有媒体源,这显然是ExoPlayerUi无法做到的。 这

  • 使用此代码创建了多少个对象?-我知道3个字符串文本在字符串常量池中,StringBuilder对象在堆中,但当我调用reverse()、insert()或append()时,它会在池中创建一个新字符串吗?

  • 我正在使用普通的JDBC(带有spring-datasource.xml)和springMVC,并且面临一些与数据库保持开放连接的问题。 是否有其他方法确保数据库连接在过程中保持关闭?

  • 我正在创建JavaMailSender的bean类,并自动拥有javamailsender,但我得到错误 我不能为bean id="mail Sender"创建bean类。我在过去的两天里一直在努力,请让我离开它。 和错误页 组织。springframework。豆。工厂BeanCreationException:创建名为“employeeController”的bean时出错:自动连线依赖项的注

  • 我试图从这里用我当前的应用程序实现数据源代理 我在Spring xml中配置了数据源对象,即在dataSourceProxy对象中传递dataSourceReal。 侦听器和过滤器与文档中一样正确配置。 Spring xml文件: 数据源名称的JNDI名称的xml文件: 我得到了这个错误: 请帮忙。