org.springframework.beans.factory.BeanCreationException类的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(16.4k)|赞(0)|评价(0)|浏览(237)

本文整理了Java中org.springframework.beans.factory.BeanCreationException类的一些代码示例,展示了BeanCreationException类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BeanCreationException类的具体详情如下:
包路径:org.springframework.beans.factory.BeanCreationException
类名称:BeanCreationException

BeanCreationException介绍

[英]Exception thrown when a BeanFactory encounters an error when attempting to create a bean from a bean definition.
[中]当BeanFactory在尝试从bean定义创建bean时遇到错误时引发异常。

代码示例

代码示例来源:origin: spring-projects/spring-security

  1. public BeanMetadataElement parse(Element element, ParserContext parserContext) {
  2. if (element == null) {
  3. return null;
  4. }
  5. String filterRef = element.getAttribute(ATT_REF);
  6. if (StringUtils.hasText(filterRef)) {
  7. return new RuntimeBeanReference(filterRef);
  8. }
  9. BeanMetadataElement configurationSource = getSource(element, parserContext);
  10. if (configurationSource == null) {
  11. throw new BeanCreationException("Could not create CorsFilter");
  12. }
  13. BeanDefinitionBuilder filterBldr = BeanDefinitionBuilder.rootBeanDefinition(CorsFilter.class);
  14. filterBldr.addConstructorArgValue(configurationSource);
  15. return filterBldr.getBeanDefinition();
  16. }

代码示例来源:origin: spring-projects/spring-framework

  1. Throwable rootCause = ex.getMostSpecificCause();
  2. if (rootCause instanceof BeanCurrentlyInCreationException) {
  3. BeanCreationException bce = (BeanCreationException) rootCause;
  4. String exBeanName = bce.getBeanName();
  5. if (exBeanName != null && isCurrentlyInCreation(exBeanName)) {
  6. if (logger.isTraceEnabled()) {
  7. logger.trace("Ignoring match to currently created bean '" + exBeanName + "': " +
  8. ex.getMessage());

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void multipleCachingConfigurers() {
  3. try {
  4. load(MultiCacheManagerConfigurer.class, EnableCachingConfig.class);
  5. }
  6. catch (BeanCreationException ex) {
  7. Throwable root = ex.getRootCause();
  8. assertTrue(root instanceof IllegalStateException);
  9. assertTrue(ex.getMessage().contains("implementations of CachingConfigurer"));
  10. }
  11. }

代码示例来源:origin: spring-projects/spring-framework

  1. Throwable rootCause = ex.getMostSpecificCause();
  2. if (rootCause instanceof BeanCurrentlyInCreationException) {
  3. BeanCreationException bce = (BeanCreationException) rootCause;
  4. String bceBeanName = bce.getBeanName();
  5. if (bceBeanName != null && beanFactory.isCurrentlyInCreation(bceBeanName)) {
  6. if (logger.isDebugEnabled()) {
  7. logger.debug("Failed to create target bean '" + bce.getBeanName() +
  8. "' while configuring object of type [" + beanInstance.getClass().getName() +
  9. "] - probably due to a circular reference. This is a common startup situation " +

代码示例来源:origin: org.springframework.boot/spring-boot

  1. private static BeanInCycle get(BeanCreationException ex) {
  2. if (StringUtils.hasText(ex.getBeanName())) {
  3. return new BeanInCycle(ex);
  4. }
  5. return null;
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Get a FactoryBean for the given bean if possible.
  3. * @param beanName the name of the bean
  4. * @param beanInstance the corresponding bean instance
  5. * @return the bean instance as FactoryBean
  6. * @throws BeansException if the given bean cannot be exposed as a FactoryBean
  7. */
  8. protected FactoryBean<?> getFactoryBean(String beanName, Object beanInstance) throws BeansException {
  9. if (!(beanInstance instanceof FactoryBean)) {
  10. throw new BeanCreationException(beanName,
  11. "Bean instance of type [" + beanInstance.getClass() + "] is not a FactoryBean");
  12. }
  13. return (FactoryBean<?>) beanInstance;
  14. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void autowiredFieldWithSingleNonQualifiedCandidate() {
  3. GenericApplicationContext context = new GenericApplicationContext();
  4. ConstructorArgumentValues cavs = new ConstructorArgumentValues();
  5. cavs.addGenericArgumentValue(JUERGEN);
  6. RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null);
  7. context.registerBeanDefinition(JUERGEN, person);
  8. context.registerBeanDefinition("autowired",
  9. new RootBeanDefinition(QualifiedFieldTestBean.class));
  10. AnnotationConfigUtils.registerAnnotationConfigProcessors(context);
  11. try {
  12. context.refresh();
  13. fail("expected BeanCreationException");
  14. }
  15. catch (BeanCreationException e) {
  16. assertTrue(e.getRootCause() instanceof NoSuchBeanDefinitionException);
  17. assertEquals("autowired", e.getBeanName());
  18. }
  19. }

代码示例来源:origin: spring-projects/spring-framework

  1. boolean isStatic;
  2. String factoryBeanName = mbd.getFactoryBeanName();
  3. if (factoryBeanName != null) {
  4. if (factoryBeanName.equals(beanName)) {
  5. throw new BeanDefinitionStoreException(mbd.getResourceDescription(), beanName,
  6. "factory-bean reference points back to the same bean definition");
  7. if (mbd.isSingleton() && this.beanFactory.containsSingleton(beanName)) {
  8. throw new ImplicitlyAppearedSingletonException();
  9. String argDesc = StringUtils.collectionToCommaDelimitedString(argTypes);
  10. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  11. "No matching factory method found: " +
  12. (mbd.getFactoryBeanName() != null ?
  13. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  14. "Invalid factory method '" + mbd.getFactoryMethodName() +
  15. "': needs to have a non-void return type!");
  16. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  17. "Ambiguous factory method matches found in bean '" + beanName + "' " +
  18. "(hint: specify index/type/name arguments for simple parameters to avoid type ambiguities): " +

代码示例来源:origin: spring-projects/spring-framework

  1. if (mbd.isSingleton()) {
  2. instanceWrapper = this.factoryBeanInstanceCache.remove(beanName);
  3. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  4. "Post-processing of merged bean definition failed", ex);
  5. boolean earlySingletonExposure = (mbd.isSingleton() && this.allowCircularReferences &&
  6. isSingletonCurrentlyInCreation(beanName));
  7. if (earlySingletonExposure) {
  8. if (ex instanceof BeanCreationException && beanName.equals(((BeanCreationException) ex).getBeanName())) {
  9. throw (BeanCreationException) ex;
  10. throw new BeanCreationException(
  11. mbd.getResourceDescription(), beanName, "Initialization of bean failed", ex);
  12. throw new BeanCurrentlyInCreationException(beanName,
  13. "Bean with name '" + beanName + "' has been injected into other beans [" +
  14. StringUtils.collectionToCommaDelimitedString(actualDependentBeans) +
  15. "] in its raw version as part of a circular reference, but has eventually been " +
  16. "wrapped. This means that said other beans do not use the final version of the " +
  17. throw new BeanCreationException(
  18. mbd.getResourceDescription(), beanName, "Invalid destruction signature", ex);

代码示例来源:origin: spring-projects/spring-framework

  1. @Override
  2. public Object getBean(String name) throws BeansException {
  3. String beanName = BeanFactoryUtils.transformedBeanName(name);
  4. Object bean = this.beans.get(beanName);
  5. if (bean == null) {
  6. throw new NoSuchBeanDefinitionException(beanName,
  7. "Defined beans are [" + StringUtils.collectionToCommaDelimitedString(this.beans.keySet()) + "]");
  8. }
  9. // Don't let calling code try to dereference the
  10. // bean factory if the bean isn't a factory
  11. if (BeanFactoryUtils.isFactoryDereference(name) && !(bean instanceof FactoryBean)) {
  12. throw new BeanIsNotAFactoryException(beanName, bean.getClass());
  13. }
  14. if (bean instanceof FactoryBean && !BeanFactoryUtils.isFactoryDereference(name)) {
  15. try {
  16. Object exposedObject = ((FactoryBean<?>) bean).getObject();
  17. if (exposedObject == null) {
  18. throw new BeanCreationException(beanName, "FactoryBean exposed null object");
  19. }
  20. return exposedObject;
  21. }
  22. catch (Exception ex) {
  23. throw new BeanCreationException(beanName, "FactoryBean threw exception on object creation", ex);
  24. }
  25. }
  26. else {
  27. return bean;
  28. }
  29. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void responseBodyArgMismatch() throws Exception {
  3. initServlet(wac -> {
  4. Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
  5. marshaller.setClassesToBeBound(A.class, B.class);
  6. try {
  7. marshaller.afterPropertiesSet();
  8. }
  9. catch (Exception ex) {
  10. throw new BeanCreationException(ex.getMessage(), ex);
  11. }
  12. MarshallingHttpMessageConverter messageConverter = new MarshallingHttpMessageConverter(marshaller);
  13. RootBeanDefinition adapterDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class);
  14. adapterDef.getPropertyValues().add("messageConverters", messageConverter);
  15. wac.registerBeanDefinition("handlerAdapter", adapterDef);
  16. }, RequestBodyArgMismatchController.class);
  17. MockHttpServletRequest request = new MockHttpServletRequest("PUT", "/something");
  18. String requestBody = "<b/>";
  19. request.setContent(requestBody.getBytes("UTF-8"));
  20. request.addHeader("Content-Type", "application/xml; charset=utf-8");
  21. MockHttpServletResponse response = new MockHttpServletResponse();
  22. getServlet().service(request, response);
  23. assertEquals(400, response.getStatus());
  24. }

代码示例来源:origin: camunda/camunda-bpm-platform

  1. boolean isStatic;
  2. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  3. "factory-bean '" + factoryBeanName + "' returned null");
  4. argTypes.add(argType);
  5. argDesc = StringUtils.collectionToCommaDelimitedString(argTypes);
  6. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  7. "No matching factory method found: " +
  8. (mbd.getFactoryBeanName() != null ?
  9. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  10. "Invalid factory method '" + mbd.getFactoryMethodName() +
  11. "': needs to have a non-void return type!");
  12. else if (ambiguousFactoryMethods != null && !mbd.isLenientConstructorResolution()) {
  13. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  14. "Ambiguous factory method matches found in bean '" + beanName + "' " +
  15. "(hint: specify index/type/name arguments for simple parameters to avoid type ambiguities): " +
  16. throw new BeanCreationException(mbd.getResourceDescription(), beanName, "Instantiation of bean failed", ex);

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void autowiredConstructorArgumentWithSingleNonQualifiedCandidate() {
  3. GenericApplicationContext context = new GenericApplicationContext();
  4. ConstructorArgumentValues cavs = new ConstructorArgumentValues();
  5. cavs.addGenericArgumentValue(JUERGEN);
  6. RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null);
  7. context.registerBeanDefinition(JUERGEN, person);
  8. context.registerBeanDefinition("autowired",
  9. new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class));
  10. AnnotationConfigUtils.registerAnnotationConfigProcessors(context);
  11. try {
  12. context.refresh();
  13. fail("expected BeanCreationException");
  14. }
  15. catch (BeanCreationException e) {
  16. assertTrue(e instanceof UnsatisfiedDependencyException);
  17. assertEquals("autowired", e.getBeanName());
  18. }
  19. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void autowiredFieldDoesNotResolveCandidateWithDefaultValueAndConflictingValueOnBeanDefinition() {
  3. GenericApplicationContext context = new GenericApplicationContext();
  4. ConstructorArgumentValues cavs1 = new ConstructorArgumentValues();
  5. cavs1.addGenericArgumentValue(JUERGEN);
  6. RootBeanDefinition person1 = new RootBeanDefinition(Person.class, cavs1, null);
  7. // qualifier added, and non-default value specified
  8. person1.addQualifier(new AutowireCandidateQualifier(TestQualifierWithDefaultValue.class, "not the default"));
  9. ConstructorArgumentValues cavs2 = new ConstructorArgumentValues();
  10. cavs2.addGenericArgumentValue(MARK);
  11. RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null);
  12. context.registerBeanDefinition(JUERGEN, person1);
  13. context.registerBeanDefinition(MARK, person2);
  14. context.registerBeanDefinition("autowired",
  15. new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class));
  16. AnnotationConfigUtils.registerAnnotationConfigProcessors(context);
  17. try {
  18. context.refresh();
  19. fail("expected BeanCreationException");
  20. }
  21. catch (BeanCreationException e) {
  22. assertTrue(e.getRootCause() instanceof NoSuchBeanDefinitionException);
  23. assertEquals("autowired", e.getBeanName());
  24. }
  25. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void testGenericListPropertyWithInvalidElementType() {
  3. DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
  4. RootBeanDefinition rbd = new RootBeanDefinition(GenericIntegerBean.class);
  5. List<Integer> input = new ArrayList<>();
  6. input.add(1);
  7. rbd.getPropertyValues().add("testBeanList", input);
  8. bf.registerBeanDefinition("genericBean", rbd);
  9. try {
  10. bf.getBean("genericBean");
  11. fail("Should have thrown BeanCreationException");
  12. }
  13. catch (BeanCreationException ex) {
  14. assertTrue(ex.getMessage().contains("genericBean") && ex.getMessage().contains("testBeanList[0]"));
  15. assertTrue(ex.getMessage().contains(TestBean.class.getName()) && ex.getMessage().contains("Integer"));
  16. }
  17. }

代码示例来源:origin: spring-projects/spring-framework

  1. private Object instantiate(
  2. String beanName, RootBeanDefinition mbd, Constructor constructorToUse, Object[] argsToUse) {
  3. try {
  4. InstantiationStrategy strategy = this.beanFactory.getInstantiationStrategy();
  5. if (System.getSecurityManager() != null) {
  6. return AccessController.doPrivileged((PrivilegedAction<Object>) () ->
  7. strategy.instantiate(mbd, beanName, this.beanFactory, constructorToUse, argsToUse),
  8. this.beanFactory.getAccessControlContext());
  9. }
  10. else {
  11. return strategy.instantiate(mbd, beanName, this.beanFactory, constructorToUse, argsToUse);
  12. }
  13. }
  14. catch (Throwable ex) {
  15. throw new BeanCreationException(mbd.getResourceDescription(), beanName,
  16. "Bean instantiation via constructor failed", ex);
  17. }
  18. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void testBeanDefinitionWithInterface() {
  3. DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
  4. lbf.registerBeanDefinition("test", new RootBeanDefinition(ITestBean.class));
  5. try {
  6. lbf.getBean("test");
  7. fail("Should have thrown BeanCreationException");
  8. }
  9. catch (BeanCreationException ex) {
  10. assertEquals("test", ex.getBeanName());
  11. assertTrue(ex.getMessage().toLowerCase().contains("interface"));
  12. }
  13. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void testDependsOnCycle() {
  3. DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
  4. RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
  5. bd1.setDependsOn("tb2");
  6. lbf.registerBeanDefinition("tb1", bd1);
  7. RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class);
  8. bd2.setDependsOn("tb1");
  9. lbf.registerBeanDefinition("tb2", bd2);
  10. try {
  11. lbf.preInstantiateSingletons();
  12. fail("Should have thrown BeanCreationException");
  13. }
  14. catch (BeanCreationException ex) {
  15. // expected
  16. assertTrue(ex.getMessage().contains("Circular"));
  17. assertTrue(ex.getMessage().contains("'tb2'"));
  18. assertTrue(ex.getMessage().contains("'tb1'"));
  19. }
  20. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void configurationClassesWithInvalidOverridingForProgrammaticCall() {
  3. beanFactory.registerBeanDefinition("config1", new RootBeanDefinition(InvalidOverridingSingletonBeanConfig.class));
  4. beanFactory.registerBeanDefinition("config2", new RootBeanDefinition(OverridingSingletonBeanConfig.class));
  5. beanFactory.registerBeanDefinition("config3", new RootBeanDefinition(SingletonBeanConfig.class));
  6. ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
  7. pp.postProcessBeanFactory(beanFactory);
  8. try {
  9. beanFactory.getBean(Bar.class);
  10. fail("Should have thrown BeanCreationException");
  11. }
  12. catch (BeanCreationException ex) {
  13. assertTrue(ex.getMessage().contains("OverridingSingletonBeanConfig.foo"));
  14. assertTrue(ex.getMessage().contains(ExtendedFoo.class.getName()));
  15. assertTrue(ex.getMessage().contains(Foo.class.getName()));
  16. assertTrue(ex.getMessage().contains("InvalidOverridingSingletonBeanConfig"));
  17. }
  18. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void autowiredFieldDoesNotResolveWithBaseQualifierAndNonDefaultValueAndMultipleMatchingCandidates() {
  3. GenericApplicationContext context = new GenericApplicationContext();
  4. ConstructorArgumentValues cavs1 = new ConstructorArgumentValues();
  5. cavs1.addGenericArgumentValue("the real juergen");
  6. RootBeanDefinition person1 = new RootBeanDefinition(Person.class, cavs1, null);
  7. person1.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "juergen"));
  8. ConstructorArgumentValues cavs2 = new ConstructorArgumentValues();
  9. cavs2.addGenericArgumentValue("juergen imposter");
  10. RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null);
  11. person2.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "juergen"));
  12. context.registerBeanDefinition("juergen1", person1);
  13. context.registerBeanDefinition("juergen2", person2);
  14. context.registerBeanDefinition("autowired",
  15. new RootBeanDefinition(QualifiedConstructorArgumentWithBaseQualifierNonDefaultValueTestBean.class));
  16. AnnotationConfigUtils.registerAnnotationConfigProcessors(context);
  17. try {
  18. context.refresh();
  19. fail("expected BeanCreationException");
  20. }
  21. catch (BeanCreationException e) {
  22. assertTrue(e instanceof UnsatisfiedDependencyException);
  23. assertEquals("autowired", e.getBeanName());
  24. }
  25. }

相关文章