Java 当请求作用域不可用时,创建一个请求作用域bean单例

Java 当请求作用域不可用时,创建一个请求作用域bean单例,java,spring,scope,Java,Spring,Scope,我有以下代码在Spring应用程序中定义一个bean请求范围的bean @Bean @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public MyBean myBean() { return new MyBean(); // actually it is a more complex initialization } 但有时我会想在离线应用程序中使用相同的bean,其中请求范围不可

我有以下代码在Spring应用程序中定义一个bean请求范围的bean

@Bean       
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public MyBean myBean() {
    return new MyBean(); // actually it is a more complex initialization
}
但有时我会想在离线应用程序中使用相同的bean,其中
请求
范围不可用,只有
单例
原型
可用


请求
不可用时,有没有办法使同一个bean采用
单例
形式?

您可以依赖spring概要文件吗? 您可以在2
@bean
使用不同的
@Scope
@Profile
的私有方法中提取bean创建

大概是这样的:

@Bean     
@Profile('prod')    
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public MyBean myBeanProd() {
    return getMyBean()
}

@Bean   
@Profile('test')    
@Scope(value = "singleton", proxyMode = ScopedProxyMode.TARGET_CLASS)
public MyBean myBeanWithoutRequestScope() {
    return getMyBean()
}

privateMyBean getMyBean() {
    return new MyBean(); // actually it is a more complex initialization
}

它工作得很好。我以前从未使用过
@Profile