转载

关于 Java 依赖注入

分别创建4个不同作用域的Bean,并使用注解的方式开发,@Component表名它们是组件类,需要Spring容器帮忙创建,@Scope注明作用域,value指明是哪种作用域,除了SingletonBean外,其它Bean还使用proxyMode指明哪种代理模式创建,这里没有接口,因此使用CGLib代理生成。

@Component

@Scope(value = "singleton")

public class SingletonBean {

//......

}

@Component

@Scope(value = "prototype" , proxyMode = ScopedProxyMode.TARGET_CLASS)

public class PrototypeBean {

//......

}

@Component

@Scope(value = "request" , proxyMode = ScopedProxyMode.TARGET_CLASS)

public class RequestBean {

//......

}

@Component

@Scope(value = "session" , proxyMode = ScopedProxyMode.TARGET_CLASS)

public class SessionBean {

//........

}

Scope 的 proxyMode

当session scope的bean要注入到singletone scope的bean时,需要声明为proxy模式。

如果有接口,可以使用 ScopedProxyMode.INTERFACES ,如果没有就需要声明 ScopedProxyMode.TARGET_CLASS ,表示使用CGLib动态生成一个代理。

Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-04/158350.htm

原文  https://www.linuxidc.com/Linux/2019-04/158350.htm
正文到此结束
Loading...