若使用过滤器自定义扫描 <context:component-scan base-package="xxx">
spring开发手册中这样写:
当一个组件在某个扫描过程中被自动检测到时,会根据那个扫描器的BeanNameGenerator 策略生成它的bean名称。默认情况下,任何包含 name值的Spring“典型”注解 (@Component、@Repository、 @Service和@Controller) 会把那个名字 提供给相关的bean定义。如果这个注解不包含name值或是其他检测到的组件 (比如被自定义过滤器发现的),默认bean名称生成器会返回小写开头的非限定(non-qualified)类名。
也就是说被加了注解扫描到spring容器中的bean会默认将小写开头的类名 作为bean的name,供其他地方引用.
例如:以下两个组件在spring中引用的名称分别是'customUserDetailsService '和 'detailService'
@Service
public class CustomUserDetailsService implements UserDetailsService {}
@Service("detailService")
public class CustomUserDetailsService implements UserDetailsService {}
举个实例:
在项目中 遇到这个地方做了bean引用,但是没有发现这个customUserDetailsService在xml中的定义,经查后发现CustomUserDetai