All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.jstuff.integration.spring.AffixesRemovingBeanNameGenerator Maven / Gradle / Ivy

/*
 * Copyright 2010-2022 by Sebastian Thomschke and contributors.
 * SPDX-License-Identifier: EPL-2.0
 */
package net.sf.jstuff.integration.spring;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.annotation.AnnotationBeanNameGenerator;

import net.sf.jstuff.core.Strings;

/**
 * Bean names generated by {@link AnnotationBeanNameGenerator} starting with "Default" are
 * returned without this prefix. e.g. defaultMailService becomes mailService.
 *
 * Bean names generated by {@link AnnotationBeanNameGenerator} ending with "Impl" are
 * returned without this suffix. e.g. mailServiceImpl becomes mailService.
 *
 * @author Sebastian Thomschke
 */
public class AffixesRemovingBeanNameGenerator extends AnnotationBeanNameGenerator {
   @Override
   public String generateBeanName(final BeanDefinition definition, final BeanDefinitionRegistry registry) {
      final String beanName = super.generateBeanName(definition, registry);
      if (beanName.startsWith("Default"))
         return Strings.substringAfter(beanName, "Default");
      return Strings.substringBeforeLast(beanName, "Impl");
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy