java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Spring Service多个实现类

Spring 中的 Service 有多个实现类如何注入(多种方式)

作者:提里奥丶弗丁

这篇文章主要介绍了Spring 中的 Service 有多个实现类如何注入,本文通过多种方式结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

        我这里指示三种方式:

        一、Controller中注入service的时候使用@Autowired自动注入,@Qualifier("实现类名首字母小写")来注入。

    // 接口
    public interface XxxxService {
        public String xxxx();
    }    
    // 实现类用 
    @Service
    public class XxxxServiceImpl implements XxxxService {
        @Override
        public String xxxx() {
            // 具体处理逻辑
            return "xxxx";
        }
    }
    @Service
    public class YyyyServiceImpl implements XxxxService {
        @Override
        public String yyyy() {
            // 具体处理逻辑
            return "yyyy";
        }
    }
    // Controller 中注入service 根据beanId(类名首字母小写) -> xxxxServiceImpl
    @Autowired
    @Qualifier("xxxxServiceImpl")
    private XxxxService xxxxService;

        二、Controller中注入service的时候使用@Resource(type = 类名.class)来注入。

    // 接口
    public interface XxxxService {
        public String xxxx();
    }    
    // 实现类用 
    @Service
    public class XxxxServiceImpl implements XxxxService {
        @Override
        public String xxxx() {
            // 具体处理逻辑
            return "xxxx";
        }
    }
    @Service
    public class YyyyServiceImpl implements XxxxService {
        @Override
        public String yyyy() {
            // 具体处理逻辑
            return "yyyy";
        }
    }
    // Controller 中注入service
    @Resource(type = XxxxServiceImpl.class)
    private XxxxService xxxxService;

        三、每个service的impl使用 @Service(“名称”)指定名称,Controller中注入service的时候使用@Resource(name="名称")注入。

    // 接口
    public interface XxxxService {
        public String xxxx();
    }    
    // 实现类用 
    @Service("xxxxService")
    public class XxxxServiceImpl implements XxxxService {
        @Override
        public String xxxx() {
            // 具体处理逻辑
            return "xxxx";
        }
    }
    @Service("yyyyService")
    public class YyyyServiceImpl implements XxxxService {
        @Override
        public String yyyy() {
            // 具体处理逻辑
            return "yyyy";
        }
    }
    // Controller 中注入service 根据beanId(@Service括号中的字符串) -> xxxxService
    @Resource(name="xxxxService")
    private XxxxService xxxxService;

到此这篇关于Spring 中的 Service 有多个实现类如何注入的文章就介绍到这了,更多相关Spring Service多个实现类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文