<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      springboot~注冊(cè)bean的方法

      spring在啟動(dòng)時(shí)會(huì)自己把bean(java組件)注冊(cè)到ioc容器里,實(shí)現(xiàn)控制反轉(zhuǎn),在開發(fā)人員使用spring開發(fā)應(yīng)用程序時(shí),你是看不到new關(guān)鍵字的,所有對(duì)象都應(yīng)該從容器里獲得,它們的生命周期在放入容器時(shí)已經(jīng)確定!

      下面說一下三種注冊(cè)bean的方法

      1. @ComponentScan
      2. @Bean
      3. @Import

      @ComponentScan注冊(cè)指定包里的bean

      Spring容器會(huì)掃描@ComponentScan配置的包路徑,找到標(biāo)記@Component注解的類加入到Spring容器。

      我們經(jīng)常用到的類似的(注冊(cè)到IOC容器)注解還有如下幾個(gè):

      • @Configuration:配置類
      • @Controller :web控制器
      • @Repository :數(shù)據(jù)倉(cāng)庫(kù)
      • @Service:業(yè)務(wù)邏輯

      下面代碼完成了EmailLogServiceImpl這個(gè)bean的注冊(cè),當(dāng)然也可以放在@Bean里統(tǒng)一注冊(cè),需要看@Bean那一節(jié)里的介紹。

      @Component
      public class EmailLogServiceImpl implements EmailLogService {
        private static final Logger logger = LoggerFactory.getLogger(EmailLogServiceImpl.class);
      
        @Override
        public void send(String email, String message) {
          Assert.notNull(email, "email must not be null!");
          logger.info("send email:{},message:{}", email, message);
        }
      }
      

      @Bean注解直接注冊(cè)

      注解@Bean被聲明在方法上,方法都需要有一個(gè)返回類型,而這個(gè)類型就是注冊(cè)到IOC容器的類型,接口和類都是可以的,介于面向接口原則,提倡返回類型為接口。

      下面代碼在一個(gè)@Configuration注解的類中,同時(shí)注冊(cè)了多個(gè)bean。

      @Configuration
      public class LogServiceConfig {
      
        /**
         * 擴(kuò)展printLogService行為,直接影響到LogService對(duì)象,因?yàn)長(zhǎng)ogService依賴于PrintLogService.
         *
         * @return
         */
        @Bean
        public PrintLogService printLogService() {
          return new PrintLogServiceImpl();
        }
      
        @Bean
        public EmailLogService emailLogService() {
          return new EmailLogServiceImpl();
        }
      
        @Bean
        public PrintLogService consolePrintLogService() {
          return new ConsolePrintLogService();
        }
      }
      
      

      @Import注冊(cè)Bean

      這種方法最為直接,直接把指定的類型注冊(cè)到IOC容器里,成為一個(gè)java bean,可以把@Import放在程序的八口,它在程序啟動(dòng)時(shí)自動(dòng)完成注冊(cè)bean的過程。

      @Import({ LogService.class,PrintService.class })
      public class RegistryBean {
      
      }
      

      Spring之所以如何受歡迎,我想很大原因是它自動(dòng)化注冊(cè)和自動(dòng)化配置這一塊的設(shè)計(jì),確實(shí)讓開發(fā)人員感到非常的自如,.net里也有類似的產(chǎn)品,像近幾年比較流行的abp框架,大叔自己也寫過類似的lind框架,都是基于自動(dòng)化注冊(cè)和自動(dòng)化配置的理念。

      posted @ 2019-02-22 14:39  張占嶺  閱讀(13244)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久蜜臀av一区三区| 亚洲精品国产摄像头| 亚洲v欧美v日韩v国产v| 精品国产性色av网站| 四虎成人在线观看免费| 国产精品日本一区二区不卡视频| 国产成人午夜福利院| 2019香蕉在线观看直播视频| japanese丰满奶水| 中文字幕乱码中文乱码毛片 | 国产精品一品二区三区日韩| 国自产拍偷拍精品啪啪模特| 精品国产伦理国产无遮挡| 俄罗斯少妇性XXXX另类| 中国大陆高清aⅴ毛片| 天天摸天天做天天添欧美| 久久国产精品亚洲精品99| 欧美成人精品高清在线播放| 亚洲人妻精品一区二区| 国产91丝袜在线播放动漫| 蜜芽亚洲AV无码精品国产午夜 | 99九九视频高清在线| 杭锦旗| 久久夜色国产噜噜亚洲av| 成人拍拍拍无遮挡免费视频| 亚洲精品国模一区二区| 国产免费午夜福利在线播放| 河北省| 欧美videosdesexo吹潮| 看全色黄大黄大色免费久久| 日韩有码中文字幕国产| 日本一码二码三码的区分| 亚洲一二三区精品美妇| 欧美牲交a欧美在线| 激情综合色综合啪啪五月| 成人年无码av片在线观看| 亚洲久悠悠色悠在线播放| 日本无码欧美一区精品久久| bt天堂新版中文在线| 唐人社导航福利精品| 国产三级国产精品国产专|