Spring實現(xiàn)Aware接口自定義獲取bean的兩種方式
在使用spring編程時,常常會遇到想根據(jù)bean的名稱來獲取相應的bean對象,這時候,就可以通過實現(xiàn)BeanFactoryAware來滿足需求,代碼很簡單:
@Servicepublic class BeanFactoryHelper implements BeanFactoryAware {
private static BeanFactory beanFactory;
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
public static Object getBean(String beanName){
if(beanFactory == null){
throw new NullPointerException("BeanFactory is null!");
}
return beanFactory.getBean(beanName); } }
還有一種方式是實現(xiàn)ApplicationContextAware接口,代碼也很簡單:
@Service
public class ApplicationContextHelper implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
public static Object getBean(String beanName){
if(applicationContext == null){
throw new NullPointerException("ApplicationContext is null!");
}
return applicationContext.getBean(beanName);
}
}
上面兩種方法,只有容器啟動的時候,才會把 BeanFactory 和 ApplicationContext 注入到自定義的helper類中,如果在本地junit測試的時候,如果需要根據(jù)bean的名稱獲取bean對象,則可以通過ClassPathXmlApplicationContext來獲取一個ApplicationContext,代碼如下:
@Test
public void test() throws SQLException {
//通過從classpath中加載spring-mybatis.xml實現(xiàn)bean的獲取
ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
IUserService userService = (IUserService) context.getBean("userService");
User user = new User();
user.setName("test");
user.setAge(20);
userService.addUser(user);
}
總結(jié)
以上就是小編分享給大家的Java編程實現(xiàn)Aware接口自定義獲取bean的兩種方式的全部內(nèi)容,希望對大家有所幫助。如果有什么問題,可以留言,小編會及時回復大家。感謝大家對本站的支持!
相關文章
spring中BeanUtils.copyProperties的使用(深拷貝,淺拷貝)
本文主要介紹了spring中BeanUtils.copyProperties的使用(深拷貝,淺拷貝),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
java+MongoDB實現(xiàn)存圖片、下載圖片的方法示例
這篇文章主要介紹了java+MongoDB實現(xiàn)存圖片、下載圖片的方法,結(jié)合實例形式詳細分析了java結(jié)合MongoDB實現(xiàn)圖片的存儲與下載相關操作技巧,需要的朋友可以參考下2019-09-09
Java實現(xiàn)網(wǎng)絡文件下載以及下載到指定目錄
在Spring框架中,StreamUtils和FileCopyUtils兩個工具類提供了方便的文件下載功能,它們都屬于org.springframework.util包,可以通過簡單的方法調(diào)用實現(xiàn)文件流的復制和下載,這些工具類支持多種參數(shù)傳遞,涵蓋了文件下載的多種場景2024-09-09
java SpringBoot自定義注解,及自定義解析器實現(xiàn)對象自動注入操作
這篇文章主要介紹了java SpringBoot自定義注解,及自定義解析器實現(xiàn)對象自動注入操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

