最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot注冊bean的三種方法

 更新時間:2019年02月22日 15:56:28   作者:張占嶺  
這篇文章主要介紹了springboot注冊bean的三種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

下面說一下三種注冊bean的方法

  • @ComponentScan
  • @Bean
  • @Import

@ComponentScan注冊指定包里的bean

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

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

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

下面代碼完成了EmailLogServiceImpl這個bean的注冊,當(dāng)然也可以放在@Bean里統(tǒng)一注冊,需要看@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注解直接注冊

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

下面代碼在一個@Configuration注解的類中,同時注冊了多個bean。

@Configuration
public class LogServiceConfig {

 /**
  * 擴展printLogService行為,直接影響到LogService對象,因為LogService依賴于PrintLogService.
  *
  * @return
  */
 @Bean
 public PrintLogService printLogService() {
  return new PrintLogServiceImpl();
 }

 @Bean
 public EmailLogService emailLogService() {
  return new EmailLogServiceImpl();
 }

 @Bean
 public PrintLogService consolePrintLogService() {
  return new ConsolePrintLogService();
 }
}

@Import注冊Bean

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

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

}

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA自定義異常使用方法實例詳解

    JAVA自定義異常使用方法實例詳解

    這篇文章主要介紹了JAVA自定義異常使用方法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 深入剖析springBoot中的@Scheduled執(zhí)行原理

    深入剖析springBoot中的@Scheduled執(zhí)行原理

    這篇文章主要介紹了springBoot中的@Scheduled執(zhí)行原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 基于Java+SSM實現(xiàn)電影院購票系統(tǒng)

    基于Java+SSM實現(xiàn)電影院購票系統(tǒng)

    今天小編給大家?guī)硪豢頢SM的電影院售票系統(tǒng),非常不錯的一個項目,是學(xué)習(xí)?javaweb編程必備。文中的示例代碼講解詳細,需要的可以參考一下
    2022-04-04
  • Java編程中void方法的學(xué)習(xí)教程

    Java編程中void方法的學(xué)習(xí)教程

    這篇文章主要介紹了Java編程中void方法的學(xué)習(xí)教程,包括對void方法進行單元測試,需要的朋友可以參考下
    2015-10-10
  • Python爬蟲 12306搶票開源代碼過程詳解

    Python爬蟲 12306搶票開源代碼過程詳解

    這篇文章主要介紹了Python爬蟲 12306搶票開源代碼過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • java中的異步加載new Thread()方式

    java中的異步加載new Thread()方式

    這篇文章主要介紹了java中的異步加載new Thread()方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java實現(xiàn)字符串匹配(基于正則)

    Java實現(xiàn)字符串匹配(基于正則)

    這篇文章主要介紹了Java中使用正則表達式實現(xiàn)字符串匹配,字符串查找,匹配,替換,正則無不能做,特別是靈活的運用子串匹配,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 實例解析JAVA中代碼的加載順序

    實例解析JAVA中代碼的加載順序

    這篇文章主要介紹了舉例說明Java中代碼塊的執(zhí)行順序,需要的朋友可以參考下
    2017-04-04
  • Intellij IDEA連接Navicat數(shù)據(jù)庫的方法

    Intellij IDEA連接Navicat數(shù)據(jù)庫的方法

    這篇文章主要介紹了Intellij IDEA連接Navicat數(shù)據(jù)庫的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借價值,需要的朋友可以參考下
    2021-03-03
  • 結(jié)合Service層講解DAO層的異常處理操作

    結(jié)合Service層講解DAO層的異常處理操作

    這篇文章主要介紹了結(jié)合Service層講解DAO層的異常處理操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

青州市| 平邑县| 宝应县| 满城县| 大荔县| 灵寿县| 德化县| 德化县| 鸡东县| 金坛市| 乾安县| 黔江区| 湘潭县| 榆林市| 姚安县| 娄底市| 金湖县| 吉林省| 开化县| 温宿县| 龙门县| 涪陵区| 淳化县| 宜丰县| 安新县| 十堰市| 军事| 巴彦县| 浮梁县| 屏南县| 临桂县| 桐梓县| 始兴县| 调兵山市| 郸城县| 陕西省| 辽阳市| 松阳县| 潜山县| 阳原县| 新巴尔虎右旗|