/*
* (c) Copyright 2005-2012 JAXIO, www.jaxio.com
* Source code generated by Celerio, a Jaxio product
* Want to use Celerio within your company? email us at info@jaxio.com
* Follow us on twitter: @springfuse
* Template pack-backend-sd:src/main/java/project/util/WithoutTrailingImplBeanNameGenerator.p.vm.java
*/
package com.company.demo.util;
import static org.apache.commons.lang.StringUtils.substringBeforeLast;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.annotation.AnnotationBeanNameGenerator;
/**
* {@link AnnotationBeanNameGenerator} to remove the trailing <code>Impl</code> of the spring bean names that are picked by spring using the annotation scanning feature.
* <p>
* To enable in your applicationContext:
* <pre>
* <context:component-scan base-package="com.company.demo" name-generator="com.company.demo.util.WithoutTrailingImplBeanNameGenerator">
* </pre>
* @see AnnotationBeanNameGenerator
*/
public class WithoutTrailingImplBeanNameGenerator extends AnnotationBeanNameGenerator {
public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
String beanName = super.generateBeanName(definition, registry);
return beanName.endsWith("Impl") ? substringBeforeLast(beanName, "Impl") : beanName;
}
}