直接上问题:我本地注入了三个支付接口的实现类:
分别类名为 ALiPayImpl、WeChatPayImpl、UnionPayImpl并进行注解注入,分别用来实现对接三种支付接口。
在调用applicationContext.getBean(name) 时 ,发现传入aLiPayImpl最为bean容器唯一Id时,报.NoSuchBeanDefinitionException: No bean named 'aLiPayImpl' available。 传入 weChatPayImpl、unionPayImpl 时,均可获取到对应实例。
Spring Bean的命名规范:
在使用@Component、@Repository、@Service、@Controller等注解创建bean时,如果不指定bean名称,bean名称的默认规则是类名的首字母小写,如SysConfig - sysConfig,Tools - tools。
如果类名前两个或以上个字母都是大写,那么bean名称与类名一样,如RBACUserLog - RBACUserLog,RBACUser - RBACUser,RBACRole - RBACRole。
猜想:其他的非驼峰式的类名,bean名称 应该也是直接使用类名。
对于