1.使用spring的注解 @Component、@Repository、@Service、@Controller 等注解去把一个类配置为bean时,如果不指定bean的名称,那么bean的名称的默认规则是:
①类名的首字母小写,例如:类名称 UserDao ,那么默认的bean名称 userDao
②如果类名前两个(或两个以上)连续的字母都是大写,那么默认的bean名称与类名一样,例如:类名称 MIXDao ,那么默认的bean名称 MIXDao
2.@Bean把配置类方法返回值的对象注入到spring容器中 bean的type就是方法返回值的类型,bean的name就是就是方法名(首字母小写)
3.
@Autowired 注解注入时首先根据byType注入,当接口存在多个实现类且使用@Service注解的默认bean名字时,根据byName注入。
@Service注解默认bean名字是小写开头的非限定(non-qualified)类名.
如果出现多个实现类可以通过 @Service("userServiceA") 来指定bean名,此时使用@Autowired需要配合@Qualifier("userServiceA")使用
==@Qualifier注解作用:指定要匹配的Bean的名称。==
4.使用@Autowired给对象类型的属性赋值,如果同类型的对象有多个,赋值是否有问题?
除了可以用@Qualifier注解的方法,还可以用@Primary注解的方式,指定如果有重复的多个的时候,用哪个bean.