1、@Controller、@Service在org.springframework的spring-context依赖下,@Autowired在org.springframework的spring-beans依赖下。
2、@Service用在类上,注册为一个bean,bean名称默认为类名称(首字母小写),也可以手动指定@Service(“abc”)或@Service(value = “abc”)
3、@Autowired优先根据属性类型匹配,根据属性类型只匹配到一个时,则直接使用,不再比较属性值;当匹配到多个时再根据属性名称匹配,@Autowired可以用在已注册为bean的类的属性上,来引用其他外部bean,属性的类型为外部bean的类名或外部bean实现的接口名,
----外部bean没有实现接口
----属性类型应为外部bean的类名,属性值任意写或与@Service的value值相同
----外部bean实现了接口,且是接口的唯一实现类时
----属性类型为外部bean类名时,属性值任意写或与@Service的value值相同
----属性类型为外部bean实现的接口名时,属性值任意写或与@Service的value值相同
----外部bean实现了接口,且不是接口的唯一实现类时
----属性类型为外部bean类名时,属性值任意写或与@Service的value值相同
----属性类型为外部bean实现的接口名时,属性值应与需要的某一个实现类的类名相同(首字母小写)或与@Service指定的value值相同