<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spring中如Service有多個(gè)實(shí)現(xiàn)類,它怎么知道該注入哪個(gè)ServiceImpl類?

          共 3831字,需瀏覽 8分鐘

           ·

          2021-05-14 20:30


          來源:cnblogs.com/zoe-java/p/11530888.html
          作者:zoe_java

          方法一:Controller中注入service的時(shí)候使用@Autowired自動(dòng)注入,@Qualifier("beanId")來指定注入哪一個(gè)。

          方法二:Controller中注入service的時(shí)候使用@Resource(type = 類名.class)來指定注入哪一個(gè)。

          方法三:

          1. 每個(gè)service的impl都可以指定名稱(使用@Service(“名稱”)
          2. Controller中注入service的時(shí)候使用名稱來指定注入哪一個(gè)(使用@Resource(name="名稱"))。

          @Service注解,其實(shí)做了兩件事情:

          1、聲明TeacherServiceImpl.java是一個(gè)bean。因?yàn)門eacherServiceImpl .java是一個(gè)bean,其他的類才可以使用@Autowired將TeacherServiceImpl 作為一個(gè)成員變量自動(dòng)注入。

          2、TeacherServiceImpl.java在bean中的id是"teacherServiceImpl ",即類名且首字母小寫。

          注意:不能有同名的,不然要報(bào)錯(cuò)。

          @Autowired注解的意思就是:

          當(dāng)Spring發(fā)現(xiàn)@Autowired注解時(shí),將自動(dòng)在代碼上下文中找到和其匹配(默認(rèn)是類型匹配)的Bean,并自動(dòng)注入到相應(yīng)的地方去。

          @Resource的作用相當(dāng)于@Autowired

          @Autowired和@Resource兩個(gè)注解的區(qū)別:

          1.@Autowired是Spring的注解,@Resource是J2EE的注解,這個(gè)看一下導(dǎo)入注解的時(shí)候這兩個(gè)注解的包名就一清二楚了。

          2.@Autowired默認(rèn)按照byType方式進(jìn)行bean匹配,@Resource默認(rèn)按照byName方式進(jìn)行bean匹配。

          3.@Autowired默認(rèn)情況下必須要求依賴對象必須存在,如果要允許null值,可以設(shè)置它的required屬性為false,如:@Autowired(required=false)

          方法一代碼如下:

          接口

          public interface HumanService {
              public String name();
          }

          接口實(shí)現(xiàn)類

          @Servicepublic class TeacherServiceImpl implements HumanService {
              @Override
              public String name() {
                  System.out.println("teacher");
                  return "teacher";
              }
          }
          @Servicepublic class DoctorServiceImpl implements HumanService {
              @Override
              public String name() {
                  System.out.println("doctor");
                  return "doctor";
              }
          }

          控制器

          @RestController
          public class HumanController {
              //    @Resource(type = DoctorServiceImpl.class) //方法二
              @Autowired
              @Qualifier("teacherServiceImpl")
              private HumanService humanService;

              @RequestMapping("/name")
              public String name(){
                  return humanService.name();
              }
          }

          方法三代碼如下:

          接口

          public interface HumanService {
              public String name();
          }

          接口實(shí)現(xiàn)類

          @Service("teacherService")
          public class TeacherServiceImpl implements HumanService {
              @Override
              public String name() {
                  System.out.println("teacher");
                  return "teacher";
              }
          }
          @Service("doctorService")
          public class DoctorServiceImpl implements HumanService {
              @Override
              public String name() {
                  System.out.println("doctor");
                  return "doctor";
              }
          }

          控制器

          @RestController
          public class HumanController {

              @Resource(name="doctorService")
              private HumanService humanService;

              @RequestMapping("/name")
              public String name(){
                  return humanService.name();
              }
          }

          1、最牛逼的 Java 日志框架,性能無敵,橫掃所有對手!
          2、把Redis當(dāng)作隊(duì)列來用,真的合適嗎?
          3、驚呆了,Spring Boot居然這么耗內(nèi)存!你知道嗎?
          4、牛逼哄哄的 BitMap,到底牛逼在哪?
          5、全網(wǎng)最全 Java 日志框架適配方案!還有誰不會(huì)?
          6、30個(gè)IDEA插件總有一款適合你
          7、Spring中毒太深,離開Spring我居然連最基本的接口都不會(huì)寫了

          點(diǎn)分享

          點(diǎn)收藏

          點(diǎn)點(diǎn)贊

          點(diǎn)在看

          瀏覽 42
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费观看全黄做爰的视频 | 日本爱爱视频一区 | 黄色三级黄色毛片 | 国产午夜在线一区二区三区 | 久久视频网站 |