本文整理了Java中org.springframework.beans.factory.config.BeanDefinition.isSingleton()
方法的一些代码示例,展示了BeanDefinition.isSingleton()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BeanDefinition.isSingleton()
方法的具体详情如下:
包路径:org.springframework.beans.factory.config.BeanDefinition
类名称:BeanDefinition
方法名:isSingleton
[英]Return whether this a Singleton, with a single, shared instance returned on all calls.
[中]返回这是否为单例,所有调用都返回一个共享实例。
代码示例来源:origin: spring-projects/spring-framework
if (bd.isSingleton()) {
return this.scriptBeanFactory.getBean(scriptedObjectBeanName).getClass();
代码示例来源:origin: apache/incubator-dubbo
if ("ref".equals(property) && parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value + " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
代码示例来源:origin: apache/incubator-dubbo
if ("ref".equals(property) && parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value + " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
代码示例来源:origin: AxonFramework/AxonFramework
private void registerEventHandlerRegistrar(String epConfigurationBeanName, String epConfigurerBeanName,
BeanDefinitionRegistry registry) {
List<RuntimeBeanReference> beans = new ManagedList<>();
beanFactory.getBeanNamesIterator().forEachRemaining(bean -> {
if (!beanFactory.isFactoryBean(bean)) {
Class<?> beanType = beanFactory.getType(bean);
if (beanType != null && beanFactory.containsBeanDefinition(bean) &&
beanFactory.getBeanDefinition(bean).isSingleton()) {
boolean hasHandler =
StreamSupport.stream(methodsOf(beanType).spliterator(), false)
.map(m -> findAnnotationAttributes(m, MessageHandler.class).orElse(null))
.filter(Objects::nonNull)
.anyMatch(attr -> EventMessage.class
.isAssignableFrom((Class) attr.get("messageType")));
if (hasHandler) {
beans.add(new RuntimeBeanReference(bean));
}
}
}
});
registry.registerBeanDefinition("eventHandlerRegistrar", genericBeanDefinition(EventHandlerRegistrar.class)
.addConstructorArgReference(AXON_CONFIGURATION_BEAN)
.addConstructorArgReference(epConfigurationBeanName)
.addConstructorArgReference(epConfigurerBeanName)
.addPropertyValue("eventHandlers", beans).getBeanDefinition());
}
代码示例来源:origin: weibocom/motan
if (parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value
+ " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
代码示例来源:origin: org.springframework/spring-context
if (bd.isSingleton()) {
return this.scriptBeanFactory.getBean(scriptedObjectBeanName).getClass();
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testCustomScopeMetadataResolver() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"org/springframework/context/annotation/customScopeResolverTests.xml");
BeanDefinition bd = context.getBeanFactory().getBeanDefinition("fooServiceImpl");
assertEquals("myCustomScope", bd.getScope());
assertFalse(bd.isSingleton());
}
代码示例来源:origin: Netflix/genie
.append(beanDefinition.isLazyInit() ? "lazy" : "eager")
.append(beanDefinition.isPrototype() ? ", prototype" : "")
.append(beanDefinition.isSingleton() ? ", singleton" : "")
.toString();
代码示例来源:origin: spockframework/spock
@Override
public void beforeTestMethod(SpringTestContext testContext) throws Exception {
Object testInstance = testContext.getTestInstance();
if (!(testInstance instanceof Specification)) return;
Specification specification = (Specification)testInstance;
ScanScopedBeans scanScopedBeans = ReflectionUtil.getAnnotationRecursive(specification.getClass(), ScanScopedBeans.class);
Set<String> scopes = scanScopedBeans == null ? Collections.<String>emptySet() :
new HashSet<>(Arrays.asList(scanScopedBeans.value()));
ApplicationContext applicationContext = testContext.getApplicationContext();
String[] mockBeanNames = applicationContext.getBeanDefinitionNames();
List<Object> mockedBeans = new ArrayList<>();
for (String beanName : mockBeanNames) {
BeanDefinition beanDefinition = ((BeanDefinitionRegistry)applicationContext).getBeanDefinition(beanName);
if (beanDefinition.isAbstract() || beanDefinition.isLazyInit()) {
continue;
}
if (beanDefinition.isSingleton() || scanScopedBean(scanScopedBeans, scopes, beanDefinition)) {
Object bean = applicationContext.getBean(beanName);
if (mockUtil.isMock(bean)) {
mockUtil.attachMock(bean, specification);
mockedBeans.add(bean);
}
}
}
testContext.setAttribute(MOCKED_BEANS_LIST, mockedBeans);
}
代码示例来源:origin: spring-projects/spring-framework
if (containingBd != null && !containingBd.isSingleton() && mbd.isSingleton()) {
mbd.setScope(containingBd.getScope());
代码示例来源:origin: org.springframework/spring-beans
if (containingBd != null && !containingBd.isSingleton() && mbd.isSingleton()) {
mbd.setScope(containingBd.getScope());
代码示例来源:origin: resteasy/Resteasy
private static boolean isSingleton(BeanDefinition beanDef)
{
try
{
return beanDef.isSingleton();
}
catch (NoSuchBeanDefinitionException nsbde)
{
// cannot distinguish between singleton & prototype
return false;
}
}
代码示例来源:origin: resteasy/Resteasy
private boolean isSingleton(String beanName)
{
boolean isSingleton = false;
try
{
BeanDefinition beanDef = beanFactory.getBeanDefinition(beanName);
isSingleton = beanDef.isSingleton();
}
catch (org.springframework.beans.factory.NoSuchBeanDefinitionException nsbde)
{
// cannot distinguish between singleton & prototype
}
return isSingleton;
}
}
代码示例来源:origin: camunda/camunda-bpm-platform
if (containingBd != null && !containingBd.isSingleton() && mbd.isSingleton()) {
mbd.setScope(containingBd.getScope());
代码示例来源:origin: org.tinygroup/org.tinygroup.springmerge
public boolean isSingleton() {
if (isBeanClassNameUpdated) {// 如果class变的话,用变更后的属性定义
return mergedBeanDefinition.isSingleton();
}
boolean mergedIsSingleton = mergedBeanDefinition.isSingleton();
boolean currentIsSingleton = currentBeanDefinition.isSingleton();
if (!mergedIsSingleton && mergedIsSingleton != currentIsSingleton) {
if (logger.isInfoEnabled()) {
logger.info("将原isSingleton属性值" + currentIsSingleton + "替换为" + mergedIsSingleton);
}
return mergedIsSingleton;
}
return currentIsSingleton;
}
代码示例来源:origin: cris001/MyRepo
private static void parseSingleRef(String property, Element element, BeanDefinition bd,
ParserContext parserContext) {
String value = element.getAttribute(property);
if (StringUtils.isNotBlank(value)) {
if (parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value
+ " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
}
}
bd.getPropertyValues().addPropertyValue(property, new RuntimeBeanReference(value));
}
}
代码示例来源:origin: org.beangle.ioc/beangle-ioc-spring
/**
* <p>
* register.
* </p>
*
* @param type a {@link java.lang.Class} object.
* @param name a {@link java.lang.String} object.
* @param args a {@link java.lang.Object} object.
*/
public void register(Class<?> type, String name, Object... args) {
Assert.notNull(name, "class'name is null");
if (0 == args.length) {
nameTypes.put(name, type);
} else {
// 注册bean的name和别名
BeanDefinition bd = (BeanDefinition) args[0];
definitionRegistry.registerBeanDefinition(name, bd);
// for list(a.class,b.class) binding usage
String alias = bd.getBeanClassName();
if (bd.isSingleton() && !name.equals(alias) && !definitionRegistry.isBeanNameInUse(alias)) {
definitionRegistry.registerAlias(name, alias);
}
if (null == type) {
if (!bd.isAbstract()) throw new RuntimeException("Concrete bean should has class.");
} else nameTypes.put(name, type);
}
}
代码示例来源:origin: com.atlassian.plugins/atlassian-plugins-spring
@Override
public void postProcessBeanDefinitionRegistry(@Nonnull BeanDefinitionRegistry registry) throws BeansException {
log.debug("Scanning al;l bean definitions for plugin-available @Bean methods");
final PluginBeanDefinitionRegistry pluginBeanDefinitionRegistry = registryFactory.apply(registry);
for (String beanName : registry.getBeanDefinitionNames()) {
final BeanDefinition beanDefinition = registry.getBeanDefinition(beanName);
if (beanDefinition instanceof AnnotatedBeanDefinition) {
final MethodMetadata factoryMethodMetadata = ((AnnotatedBeanDefinition) beanDefinition).getFactoryMethodMetadata();
if (factoryMethodMetadata != null) {
final boolean isPluginAvailable = factoryMethodMetadata.isAnnotated(AvailableToPlugins.class.getName());
if (isPluginAvailable) {
if (beanDefinition.isSingleton()) {
log.debug("Registering bean '{}' as plugin-available", beanName);
registerPluginAvailableBean(beanName, factoryMethodMetadata, pluginBeanDefinitionRegistry);
} else {
log.warn("Bean '{}' is not singleton-scoped, and cannot be made available to plugins", beanName);
}
}
}
}
}
}
代码示例来源:origin: org.springframework.boot/spring-boot-test
private void resetMocks(ConfigurableApplicationContext applicationContext,
MockReset reset) {
ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
String[] names = beanFactory.getBeanDefinitionNames();
Set<String> instantiatedSingletons = new HashSet<>(
Arrays.asList(beanFactory.getSingletonNames()));
for (String name : names) {
BeanDefinition definition = beanFactory.getBeanDefinition(name);
if (definition.isSingleton() && instantiatedSingletons.contains(name)) {
Object bean = beanFactory.getSingleton(name);
if (reset.equals(MockReset.get(bean))) {
Mockito.reset(bean);
}
}
}
try {
MockitoBeans mockedBeans = beanFactory.getBean(MockitoBeans.class);
for (Object mockedBean : mockedBeans) {
if (reset.equals(MockReset.get(mockedBean))) {
Mockito.reset(mockedBean);
}
}
}
catch (NoSuchBeanDefinitionException ex) {
// Continue
}
if (applicationContext.getParent() != null) {
resetMocks(applicationContext.getParent(), reset);
}
}
代码示例来源:origin: org.mule.modules/mule-module-spring-config
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext)
{
preProcess(element);
setParserContext(parserContext);
setRegistry(parserContext.getRegistry());
Class beanClass = getBeanClass(element);
Assert.state(beanClass != null, "Class returned from getBeanClass(Element) must not be null, element is: " + element.getNodeName());
BeanDefinitionBuilder builder = createBeanDefinitionBuilder(element, beanClass);
builder.getRawBeanDefinition().setSource(parserContext.extractSource(element));
if (parserContext.isNested())
{
// Inner bean definition must receive same singleton status as containing bean.
builder.setScope(parserContext.getContainingBeanDefinition().isSingleton()
? BeanDefinition.SCOPE_SINGLETON : BeanDefinition.SCOPE_PROTOTYPE);
}
doParse(element, parserContext, builder);
BeanAssembler beanAssembler = getBeanAssembler(element, builder);
beanAssembler.copyBeanToTarget();
return (AbstractBeanDefinition) beanAssembler.getTarget();
}
内容来源于网络,如有侵权,请联系作者删除!