戴着假发的程序员出品
context:component-scan的scoped-proxy属性
spring应用手册(第一部分)
scoped-proxy 往往是使用在web工程中,比如下面的场景:
我们有一个Bean的score是session,那么就是每一个回话都会创建一个Bean。spring容器在初始化时不会创建这个Bean对象。 但是如果我们将这个Bean注入到其他的单利的bean中,就会出现问题。这是spring的解决方案就是产生一个代理对象。
那么scoped-proxy 就是用来配置代理方式的,总共有三个值
no(默认值):如果有接口就使用JDK代理,如果没有接口就使用CGLib代理
interfaces: 接口代理(JDK代理)
targetClass:类代理(CGLib代理)
scoped-proxy 是 Spring 在 web 工程中解决 session 范围 Bean 与单例 Bean 依赖问题的代理机制。它提供了 no、interfaces 和 targetClass 三种配置选项,分别对应默认的接口代理(JDK)或类代理(CGLib)。通过 scoped-proxy,可以确保在注入时产生正确的代理对象,避免 Bean 初始化时创建 session Bean。
447





