精华内容
下载资源
问答
  • 一个接口个实现,指定实现类

    万次阅读 2018-04-14 21:49:38
    目的:一个接口多个实现时,根据不同的条件调用不用的实现1、如下接口public interface Pay { public Object pay(Map<String,Object> map); }2、如下两个实现实现一:@Service("weixinPay&...

    目的:一个接口多个实现时,根据不同的条件调用不用的实现

    1、有如下接口

    public interface Pay {
    	public Object pay(Map<String,Object> map);
    }

    2、有如下两个实现

    实现一:

    @Service("weixinPay")
    public class WeixinPay implements Pay{
        @Override
        public Object pay(Map<String, Object> map){
            return "weixinpay";
        }
    }

    实现二:

    @Service("aliPay")
    public class AliPay implements Pay{
        @Override
        public Object pay(Map<String, Object> map){
            return "alipay";
        }
    }

    3、根据不同的条件调用不同的实现

    方法一:

    @Resource(name="weixinPay")
    ShopPay weixinPay;
    	
    @Resource(name="aliPay")
    ShopPay aliPay;

    方法二:

    @Autowired
    @Qualifier("weixinPay")
    ShopPay weixinPay;
    
    @Autowired
    @Qualifier("aliPay")
    ShopPay aliPay;


    展开全文
  • @Service public class AaaService implements IChangePassword { @Override public void changePassword(String username, String password) { } } @Service public class BbbService implements IC
    @Service
    public class AaaService implements IChangePassword {
    
        @Override
        public void changePassword(String username, String password) {
        }
    
    }
    
    @Service
    public class BbbService implements IChangePassword {
    
        @Override
        public void changePassword(String username, String password) {
        }
    
    }
    
    public class AccountController extends BaseController {
        @Autowired
        @Qualifier("aaaService")
        private IChangePassword aaaService;
    
            @Autowired
        @Qualifier("bbbService")
        private IChangePassword bbbService;
    }

    展开全文
  • 1、个实现类实现多个接口 例如:serviceImpl implements Interface1,Interface2 在controller中 @AutowiredInterface1 只能调用Interface1接口的方法 ...例如:Interface 接口有两个实现类 Interfac...

    1、一个实现类实现多个接口

    例如:serviceImpl implements Interface1,Interface2

    在controller中

    @Autowired  Interface1

    只能调用  Interface1接口的方法

    总结,注入单个接口,只能调用对应的接口方法

    2、一个接口多个实现类,注入指定的实现类

    例如:Interface 接口有两个实现类 InterfaceImpl1 和 InterfaceImpl2

    //实现类1

    @Service
    public class InterfaceImpl1 implements Interface {

    //实现类1

    @Service
    public class InterfaceImpl2implements Interface {

    //业务类,controller

    @Autowired  Interface 

    private Interface interface;

    按照上面的写法,启动服务时会报错

    解决方法

    1.指明实现类的优先级,注入的时候使用优先级高的实现类

    //实现类1

    @Service

    @Primary   //同一个接口的实现类,最多只能有一个添加该注解
    public class InterfaceImpl1 implements Interface {

    在controller中注入接口,默认使用的是Primary  标注的实现类的方法

    2.通过 @Autowired 和 @Qualifier 配合注入

    @Autowired
    @Qualifier("interfaceImpl1")
    Interface1 interface1;    //正常启动

    3.使用@Resource注入,根据默认类名区分

    @Resource(name = "interfaceImpl1")
    Interface1 interface1;    //正常启动

    4.使用@Resource注入,根据@Service指定的名称区分

    需要在实现类@Service后设置名称:

    @Service("s1")
    public class InterfaceImpl1 implements Interface {

    @Resource(name = "s1")
    Interface1 interface1;    //正常启动

     

     

    spring常用注解说明

    • @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
    • @Scope注解 作用域
    • @Lazy(true) 表示延迟初始化
    • @Service用于标注业务层组件、 
    • @Controller用于标注控制层组件(如struts中的action)
    • @Repository用于标注数据访问组件,即DAO组件。
    • @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
    • @Scope用于指定scope作用域的(用在类上)
    • @PostConstruct用于指定初始化方法(用在方法上)
    • @PreDestory用于指定销毁方法(用在方法上)
    • @Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
    • @DependsOn:定义Bean初始化及销毁时的顺序
    • @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
    • @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用
    • @Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

     

     

    展开全文
  • java 一个类怎么实现两个接口

    万次阅读 2019-03-20 18:44:06
    // 实现。。。n个接口都是使用逗号分隔 public   String sayHello(String name) {   return   "Hello, "   + name;   } public   String sayHi(String name) ...

    直接用英文逗号分隔就可以了,比如:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    inerface IHello {

        String sayHello(String name);

     

    }

    interface IHi {

        String sayHi(String name);

     

    }

     

    class ServiceImpl implements IHello, IHi {// 实现三个四个。。。n个接口都是使用逗号分隔

    public String sayHello(String name) {

        return "Hello, " + name;

     

    }

    public String sayHi(String name) {

        return "Hi, " + name;

     

    }

    }

    展开全文
  • 最近写了前台一个管理模块,后来也是我来写,采用四层架构,在定义接口时,基本是一个接口对应一个实现类,使用@Autowired注解,但我想如果个实现类,如何注解,来梳理一下 举例说明: 1、接口:IAnimal 2、实现...
  • 一个接口有个实现类的调用方式

    千次阅读 2019-02-25 10:27:21
    A用户调用Aservice实现类,B用户调用Bservice实现类 1、使用switch-case public static Person printPerson(int kind) { Person p = null; switch (kind) { case FIRST: p = new A(&quot;人1&quot;);...
  • Java 设计一个Shape接口和它的两个实现类Square和Circle

    万次阅读 多人点赞 2020-04-23 01:49:13
    设计一个Shape接口和它的两个实现类Square和Circle,要求如下: (1) Shape接口有一个抽象方法area(),方法接收一个double类型的参数,返回一个double类型的结果。 (2) Square和Circle中实现了Shape接口的area...
  • 设计一个Shape接口和它的两个实现类Square和Circle

    万次阅读 多人点赞 2017-09-30 13:42:19
    6、设计一个Shape接口和它的两个实现类Square和Circle 1)Shape接口有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果 2)Square和Circle中实现了Shape接口的area()抽象方法,分别...
  • 所以用到了一个接口个实现类,每个实现类查询不同数据库。记录一下接口是怎么调用不同的实现类的。 定时任务一: 定时任务二: 同时继承了一个实现类AbstractSendDataTask   applicationContext.xml...
  • 实现动态调用,方法很多种,在这里记下种我觉得比较简单的,方便以后翻阅。 接口类 package com.su.mybatis.oracle.service; public interface TestService { String firstStep(); String secondStep()...
  • interface:Cus1 ...实现:Customer implents Cus1(){ syso("1") } @Component Customer2 implents Cus1(){ syso("1") } 属性注入: @Service(value="customerService") CustomerService(){ @
  • 现有Class A,Class B,interface C C中有一个f()的空方法,A中对这个f()的具体实现 请问B能不能直接调用A中实现好了的f()方法?如果不能,该怎么办才可以调用?
  • 设计一个Shape接口和它的两个实现类Square和Circle。 要求 1.Shape接口有一个抽象类方法area(),方法接受有一个double类型的参数,返回一个double类型的结果。 2.Square和Circle中实现了Shape接口的area()抽象...
  • 一个接口有两个实现类,spring注入时报错。报错:No unique bean of type [com.test.service.EmployeeService] is defined: expected single matching bean but found 2 原文链接:...
  • 一、简单例子: 1. 直接new一个实例,这样肯定知道用的哪个实例 ...举个例子:A接口,A1,A2,A3实现A接口有一个eat方法,A1:吃饭,A2:吃鱼,A3:吃肉 需要得到"吃肉",那么 A a = n
  • 参考文章:https://blog.csdn.net/mazuyu408/article/details/79629846 ... 先说明下场景,代码如下: 如下接口: public interface EmployeeService { public EmployeeDto...
  • 、建立枚举类:用于区分你需要多少个实现类 二、建立接口类:用于声明父类的方法(注意,接口可不用注入,调用看实现类) 三、建立实现多个实现类:用于实现具体方法(注意:实现类需要注入容器) ...
  • 一个类可以实现多个接口,但是只能继承一个类
  • 多继承会产生钻石问题(菱形继承) B 和 C 继承自 A,且都重写了 A 中的同一个方法 ...接口中的方法是抽象的,一个类实现可以多个接口 假设这些接口中存在相同方法(方法名与参数相同),...
  • java开发中调用一个接口的方法时是怎么调用到该接口实现类的?
  • 1、首先,有一个接口PersonService,然后再写两个实现类PersonServiceImp1、PersonServiceImp2 2、进行测试 如果我们直接注入接口的话,idea就会给我们报错 3、解决办法 其实自动注入时,它首先会先根据class...
  • 1、接口:IUserService public interface IUserService { ...2、实现类:UserServiceImpl,实现了UserService接口 @Service("UserServiceImpl ") public class UserServiceImpl implements IUser...
  • 商业转载请联系作者获得授权,非商业转载请注明出处。“接口是个规范”,这句没错。“不如直接就在这个中写实现方法岂不是...如果多个实现一个接口,程序怎么知道他们是关联的呢?既然不是一个类实现,...
  • idea如何查看一个接口实现类

    千次阅读 2019-12-14 20:06:10
    目录按住次Shift键按住Ctrl+Alt +b键 看到实现类 按住次Shift键 在任意界面连续 次按Shift键-输入你要查找的接口名称 注意包别找错 出现如下界面 点击进入这类 按住Ctrl+Alt +b键 看到实现类 ...
  • Java写一个接口两个类

    千次阅读 2015-10-30 22:09:20
    (2)设计一个学生类实现了学生接口,学生的基本信息:学号、姓名、年龄、各科成绩(假设一共5门课程,请用数组实现)。 (3)设计一个大学生继承了学生: 大学生除了包含普通学生的信息外,还包包含:...
  • 所以我们 Java 不用多重继承,用多重实现,but,如果实现两个接口中,相同名字的抽象方法,那不还是避免不了所谓的“致命方块”吗?Friend 接口:public interface Friend { public abstract void play() ; ...
  • 一个接口能继承另一个接口,和之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。 下面的Sports接口被Hockey和Football接口继承: // 文件名: Sports.java public interfa
  • 定义一个接口用来实现两个对象的比较。 interface CompareObject{  public int compareTo(Object o); //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小  } 定义一个Circle。 定义一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,683,106
精华内容 673,242
关键字:

一个接口有两个实现类