Springboot:@Service注解作用 以及 当有多个Impl时如何知道注入的是哪个Impl

学习自:

(37条消息) @Service注解怎么使用?@Service注解的用法__花野的博客-CSDN博客_@service注解

(39条消息) Spring中 如果该Service有多个实现类,它怎么知道该注入哪个ServiceImpl类?_蔡定努的博客-CSDN博客

 

1、@Service注解的作用

用于Service实现类前(注意是实现类Impl,而非接口),标记当前类是一个Service类,加上该注解会自动将当前类注入到Spring容器中,不需要在xml文件中定义Bean了。

其作用和@Component、@bean、@Controller、@Repository一样。

@Service("courseDAO")
public class CourseDAOImpl implements CourseDAO{
        ...    
}

在其他类中注入调用:

@Autowried
private CourseDAOImpl  courseDAOImpl;

2、如果一个Service接口有多个实现类Impl,那注入时怎么知道注入的是哪一个呢?

答案是为Impl命名

通过@Service传入名称,这样就为每个Impl定了一个名称,默认情况下的名称就是首字母小写的Service接口名

命名

如果要命名,写法为:

@Service("名称")
public class XxxServiceImpl implements XxxService{
  ...
}

注入

在Controller中注入Service时,通过说明名称来指定注入哪个Service:

//注入方式1
@Autowired
@Qualifier("名称")
private XxxService xxxService;

//注入方式2
@Resource(name="名称")
private XxxService xxxService;

这样就可以使用指定的Service了。

 

posted @   ShineLe  阅读(5929)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示