仅当JSR-330注释按照标准定义的方式运行时,才使用Spring自己的注释。不幸的是,默认情况下它们没有。 JSR-330中@Named Bean的默认范围是原型。但是,Spring默认仍然使用Singleton范围。
根据this article,如果您仍然生活在XML世界中,这很容易。
<context:component-scan base-package="my.package"
scope- resolver="org.springframework.context.annotation.Jsr330ScopeMetadataResolver" />
如果您使用Java来配置所有内容,该怎么做?
在setScopeMetadataResolver
上有一个ClassPathBeanDefinitionScanner
方法,但是我不了解如何正确地配置(仅此设置)而不重新创建所有ClassPathBeanDefinition扫描程序。