Java 这是一个';静态Bean';?

Java 这是一个';静态Bean';?,java,spring,Java,Spring,或者方法签名实际上需要有static关键字吗?我不完全确定关于静态Bean的含义,Bean是运行时的实例 如果您是指Singleton,这意味着bean将在应用程序启动时创建,并在应用程序结束时销毁 然后,默认情况下,每个Bean都是@Bean(scope=DefaultScopes.SINGLETON),如果您希望在每次使用它时都创建一个Bean,那么可以将其定义为@Bean(scope=DefaultScopes.PROTOTYPE) 看看文档:我对静态bean的理解会有所不同。以Eclip

或者方法签名实际上需要有static关键字吗?

我不完全确定关于静态Bean的含义,Bean是运行时的实例

如果您是指Singleton,这意味着bean将在应用程序启动时创建,并在应用程序结束时销毁

然后,默认情况下,每个Bean都是@Bean(scope=DefaultScopes.SINGLETON),如果您希望在每次使用它时都创建一个Bean,那么可以将其定义为@Bean(scope=DefaultScopes.PROTOTYPE)


看看文档:

我对静态bean的理解会有所不同。以Eclipse Hawkbit中的类为例:

public class SomeClass {

    private static final int num = 432;

    @Bean
    public int getNum(){
        return num;
    }

}
ApplicationEventPublisher
注入
EventPublisherHolder
的方式是通过Spring magic

public final class EventPublisherHolder {

    private static final EventPublisherHolder SINGLETON = new EventPublisherHolder();

    @Autowired
    private ApplicationEventPublisher eventPublisher;

    public static EventPublisherHolder getInstance() {
        return SINGLETON;
    }

    public ApplicationEventPublisher getEventPublisher() {
        return eventPublisher;
    }
    ...
}
EventPublisherHolder
类使静态获取
ApplicationEventPublisher
更加容易。 作为一个例子,我们来看看这个类的使用方法: 来自课堂:

@覆盖
public void fireCreateEvent(最终描述符Revent描述符Revent){
EventPublisherHolder.getInstance().getEventPublisher().publishEvent(新ActionCreatedEvent(…);
}

在此意义上,您可以考虑<代码> EngestPrimeServs< /Cule> bean作为静态bean。

@Bean
EventPublisherHolder eventBusHolder() {
    return EventPublisherHolder.getInstance();
}