- @Autowired 注解注入时首先根据byType注入,当接口存在多个实现类时会根据byName注入。@Service注解默认bean名字是小写开头的类名。
@service
public class SysUserServiceImpla implements SysUserService {}
@service
public class SysUserServiceImplb implements SysUserService {}
@Autowired
private SysUserService sysUserServiceImpla;
- 通过 @Autowired 和 @Qualifier 配合注入,@Service(“xxx”) 设置bean名,@Qualifier注解,可以明确指定注入的bean。
@service("userServiceImpla")
public class SysUserServiceImpla implements SysUserService {}
@service("userServiceImplb")
public class SysUserServiceImplb implements SysUserService {}
@Autowired
@Qualifier("userServiceImpla")
private SysUserService sysUserServiceImpl;
- 通过@Primary进行指定,@Primary注解用于标记 Spring 上下文中的一个 Bean,表示这个 Bean 是默认首选的 Bean。在有多个相同类型的 Bean 被注入时,如果没有使用其他限定符来指定要注入的 Bean,那么默认会使用带有 @Primary 注解的 Bean。
@service
@Primary
public class SysUserServiceImpla implements SysUserService {}
@service
public class SysUserServiceImplb implements SysUserService {}
@Autowired
private SysUserService sysUserServiceImpl;