欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于ApplicationContext的三個(gè)常用實(shí)現(xiàn)類

 更新時(shí)間:2024年06月04日 09:31:53   作者:我一直在流浪  
這篇文章主要介紹了關(guān)于ApplicationContext的三個(gè)常用實(shí)現(xiàn)類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

ApplicationContext的三個(gè)常用實(shí)現(xiàn)類

在這里插入圖片描述

在這里插入圖片描述

FileSystemXmlApplicationContext:可以加載磁盤路徑下的配置文件(不常用)

public class Client {
    public static void main(String[] args) {
        ApplicationContext context = 
			new FileSystemXmlApplicationContext("C:\\Users\\ghh\\Desktop\\bean.xml");
        AccountService service = context.getBean("accountService", AccountService.class);
        AccountDao accountDao = context.getBean("accountDao", AccountDao.class);
        System.out.println(service);
        System.out.println(accountDao);
    }
}

ClassPathXmlApplicationContext:可以加載類路徑下的配置文件

要求配置文件必須在類路徑下面

public class Client {
    public static void main(String[] args) {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean.xml");
        AccountService service = context.getBean("accountService", AccountService.class);
        AccountDao accountDao = context.getBean("accountDao", AccountDao.class);
        System.out.println(service);
        System.out.println(accountDao);
    }
}

AnnotationConfigApplicationContext:讀取注解創(chuàng)建容器

applicationContext=null的問題

問題

要對(duì)一個(gè)公共模塊項(xiàng)目,進(jìn)行一個(gè)拆分,做一個(gè)細(xì)化。

調(diào)整的時(shí)候,調(diào)整了啟單類的位置(并未注意到),單元測(cè)試的時(shí)候,就報(bào)錯(cuò)。 

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
 
@Component
public class SpringUtils implements ApplicationContextAware {
 
    private static ApplicationContext applicationContext;
 
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        SpringUtils.applicationContext = applicationContext;
    }
 
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }
 
    public static Object getBean(String name) {
        return applicationContext.getBean(name);
    }
 
    public static <T> T getBean(Class<T> requiredType) {
        return applicationContext.getBean(requiredType);
    }
 
}

setApplicationContext 調(diào)試的時(shí)候,方法沒進(jìn)去。說明bean沒有初始化。

處理1:檢查目錄

啟動(dòng)類要在頂層的位置,這樣才會(huì)讀整個(gè),就不用設(shè)置@ComponentScan

處理2:設(shè)置@ComponentScan

指定具體讀取的路徑

@ComponentScan(basePackages = {"com.basic.common"})
public class BasicCommonApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(BasicCommonApplication.class, args);
    }
 
    @Bean
    public DozerBeanMapperFactoryBean dozerBeanMapperFactoryBean() {
        return new DozerBeanMapperFactoryBean();
    }
 
}

心得:

如果在單個(gè)項(xiàng)目中,啟動(dòng)類需要在頂層的位置,才不用設(shè)置@ComponentScan,否則需要進(jìn)行設(shè)置,才能讀取得到。 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java設(shè)計(jì)模式中單一職責(zé)原則詳解

    Java設(shè)計(jì)模式中單一職責(zé)原則詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式中單一職責(zé)原則詳解,單一職責(zé)原則 (SRP) 是軟件設(shè)計(jì)中的一個(gè)重要原則,它要求每個(gè)類只負(fù)責(zé)一個(gè)職責(zé),需要的朋友可以參考下
    2023-05-05
  • springboot實(shí)現(xiàn)增加黑名單和白名單功能

    springboot實(shí)現(xiàn)增加黑名單和白名單功能

    本文主要介紹了springboot實(shí)現(xiàn)增加黑名單和白名單功能,就是單純的實(shí)現(xiàn)filter,然后注冊(cè)到springboot里面,在filter里面進(jìn)行黑白名單的篩選,感興趣的可以了解一下
    2024-05-05
  • Java定時(shí)任務(wù)的三種實(shí)現(xiàn)方法

    Java定時(shí)任務(wù)的三種實(shí)現(xiàn)方法

    在應(yīng)用里經(jīng)常都有用到在后臺(tái)跑定時(shí)任務(wù)的需求。舉個(gè)例子,比如需要在服務(wù)后臺(tái)跑一個(gè)定時(shí)任務(wù)來進(jìn)行垃圾回收
    2014-04-04
  • Java使用Socket通信傳輸文件的方法示例

    Java使用Socket通信傳輸文件的方法示例

    這篇文章主要介紹了Java使用Socket通信傳輸文件的方法,結(jié)合實(shí)例形式分析了java socket編程實(shí)現(xiàn)文件傳輸操作的相關(guān)技巧,需要的朋友可以參考下
    2017-06-06
  • mybatis的使用-Mapper文件各種語法介紹

    mybatis的使用-Mapper文件各種語法介紹

    這篇文章主要介紹了mybatis的使用-Mapper文件各種語法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 一文帶你搞懂Maven的繼承與聚合

    一文帶你搞懂Maven的繼承與聚合

    這篇文章主要為大家詳細(xì)介紹了Maven的繼承和聚合以及二者的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-07-07
  • SpringBoot項(xiàng)目如何使用多線程執(zhí)行定時(shí)任務(wù)

    SpringBoot項(xiàng)目如何使用多線程執(zhí)行定時(shí)任務(wù)

    在SpringBoot項(xiàng)目中使用多線程執(zhí)行定時(shí)任務(wù),可以避免一個(gè)耗時(shí)任務(wù)影響其他任務(wù),通過配置線程池任務(wù)調(diào)度器,Spring會(huì)自動(dòng)使用多線程執(zhí)行定時(shí)任務(wù)
    2025-01-01
  • java使用RandomAccessFile類基于指針讀寫文件實(shí)例代碼

    java使用RandomAccessFile類基于指針讀寫文件實(shí)例代碼

    這篇文章主要介紹了java使用RandomAccessFile類基于指針讀寫文件實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • 圖文詳解Maven工程打jar包的N種方式

    圖文詳解Maven工程打jar包的N種方式

    最近在打包maven項(xiàng)目時(shí),該項(xiàng)目中僅有一個(gè)測(cè)試類,想打成jar包運(yùn)行測(cè)試,所以下面這篇文章主要給大家介紹了關(guān)于Maven工程打jar包的N種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 圖文詳解Java中的序列化機(jī)制

    圖文詳解Java中的序列化機(jī)制

    java中的序列化可能大家像我一樣都停留在實(shí)現(xiàn)Serializable接口上,對(duì)于它里面的一些核心機(jī)制沒有深入了解過。本文將通過示例帶大家深入了解Java中的序列化機(jī)制,需要的可以參考一下
    2022-10-10

最新評(píng)論