乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      springboot一個接口多個實現(xiàn)類的調(diào)用方式

       wwq圖書世界 2024-01-23 發(fā)布于山東

      1、指定限定名注入實現(xiàn)類

      1.1、定義一個接口

      1. public interface AnimalService {
      2. public void sound();
      3. }

      1.2、創(chuàng)建多個實現(xiàn)類

      1. @Service("s1")
      2. public class CatService implements AnimalService {
      3. @Override
      4. public void sound() {
      5. System.out.println("喵喵喵");
      6. }
      7. }
      1. @Service()
      2. public class DogService implements AnimalService {
      3. @Override
      4. public void sound() {
      5. System.out.println("汪汪汪");
      6. }
      7. }
      1. @Service("s3")
      2. public class CattleService implements AnimalService {
      3. @Override
      4. public void sound() {
      5. System.out.println("汪汪汪");
      6. }
      7. }

      1.3、指定限定名注入實現(xiàn)類

      1. @RunWith(SpringRunner.class)
      2. @SpringBootTest
      3. public class Main {
      4. @Autowired
      5. @Qualifier(value = "s1")
      6. AnimalService animalService1; //正常啟動
      7. //沒有指定bean注入名字的,使用該類首字符小寫的bean的名字
      8. //使用默認的
      9. @Resource(name = "dogService")
      10. AnimalService animalService2; //正常啟動
      11. //通過@Resource注入,根據(jù)@Service指定的名稱區(qū)分
      12. @Resource(name = "s3")
      13. AnimalService animalService3; //正常啟動
      14. @Test
      15. public void test1() {
      16. animalService1.sound();
      17. animalService2.sound();
      18. animalService3.sound();
      19. }
      20. }

       2、Map名注入實現(xiàn)類

      2.1、定義一個接口

      1. public interface AnimalService {
      2. public void sound();
      3. }

      2.2、創(chuàng)建多個實現(xiàn)類

      1. @Service("s1")
      2. public class CatService implements AnimalService {
      3. @Override
      4. public void sound() {
      5. System.out.println("喵喵喵");
      6. }
      7. }
      1. @Service()
      2. public class DogService implements AnimalService {
      3. @Override
      4. public void sound() {
      5. System.out.println("汪汪汪");
      6. }
      7. }

      2.3、枚舉

      1. public enum AnimalTypeEnum {
      2. DOG(1, "狗狗", "dogService"),
      3. CAT(2, "貓咪", "catService");
      4. public Integer code;
      5. public String msg;
      6. public String service;
      7. public static AnimalTypeEnum getAnimalTypeEnum (Integer code) {
      8. return (AnimalTypeEnum )Arrays.stream(values()).filter((item) -> {
      9. return item.code.equals(code);
      10. }).findFirst().orElseThrow(() -> {
      11. return new BusinessException("biz animal type is not exist");
      12. });
      13. }
      14. private AnimalTypeEnum (final Integer code, final String msg, final String service) {
      15. this.code = code;
      16. this.msg = msg;
      17. this.service = service;
      18. }
      19. }

      2.4、指定限定名注入實現(xiàn)類

      1. @RunWith(SpringRunner.class)
      2. @SpringBootTest
      3. public class Main {
      4. @Autowired
      5. Map<String, AnimalService> animalServiceMap;
      6. @Test
      7. public void test1() {
      8. String service = AnimalTypeEnum.getAnimalTypeEnum(1).service;
      9. AnimalService animalService = animalServiceMap.get(service);
      10. animalService.sound();
      11. }
      12. }

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多