Spring中容器創(chuàng)建的四種方式示例
Spring容器
Spring容器是Spring框架的核心部分,它負責(zé)管理和組織應(yīng)用程序中的對象。它提供了一種輕量級的、非侵入式的方式來實現(xiàn)對象的創(chuàng)建、依賴注入和生命周期管理。
Spring容器可以通過XML配置文件、注解或Java代碼來定義和配置對象之間的關(guān)系和依賴。
它可以幫助開發(fā)人員更好地組織和管理應(yīng)用程序的組件,提高代碼的可維護性和可測試性。
Spring容器還提供了一些額外的功能,如AOP(面向切面編程)、事務(wù)管理和國際化支持等。
通過使用Spring容器,開發(fā)人員可以更加專注于業(yè)務(wù)邏輯的實現(xiàn),而不需要過多關(guān)注對象的創(chuàng)建和管理。
1. ClassPathXmlApplicationContext ClassPath類路徑加載,必須是類路徑
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); //beans.xml配置文件路徑 IUserService user = (IUserService) context.getBean("userService"); //IUserService 是接口,userService是配置文件中的對象id user.add(); //調(diào)用對象的add()方法
2. 文件系統(tǒng)路徑獲得配置文件
ApplicationContext context = new FileSystemXmlApplicationContext("配置文件絕對路徑") IUserService user = (IUserService) context.getBean("userService"); //IUserService 是接口,userService是配置文件中的對象id user.add(); //調(diào)用對象的add()方法
3. 讀取注解配置-AnnotationConfigApplicationContext(不需要配置文件,直接定義一個配置類)
ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class);//這里的SpringConfiguration類就是被@Configuration注解過的類 IUserService user = (IUserService) context.getBean("userService");
4. 使用BeanFactory(過時)
Resource resource = new ClassPathResource("beans.xml"); BeanFactory factory = new XmlBeanFactory(resource); IUserServiceam = (IUserService)factory.getBean("userService");
配置文件可以結(jié)合注解使用,如果需要我們自己寫的類的實例對象,可以在這些類上使用@Component、@Controller、@Service、@Repository注解創(chuàng)建對象并放入容器,這樣在配置文件中就不用再配這些對象;而如果引用其他包的類對象,則在配置文件中配置比較方便
總結(jié)
Spring容器是Spring框架的核心組件,它提供了一種輕量級的、非侵入式的方式來管理和組織應(yīng)用程序中的對象。
通過使用Spring容器,開發(fā)人員可以更好地組織和管理應(yīng)用程序的組件,提高代碼的可維護性和可測試性。
Spring容器可以通過XML配置文件、注解或Java代碼來定義和配置對象之間的關(guān)系和依賴。
它還提供了一些額外的功能,如AOP、事務(wù)管理和國際化支持等。通過使用Spring容器,開發(fā)人員可以更加專注于業(yè)務(wù)邏輯的實現(xiàn),而不需要過多關(guān)注對象的創(chuàng)建和管理。
到此這篇關(guān)于Spring中容器創(chuàng)建的四種方式示例的文章就介紹到這了,更多相關(guān)Spring容器創(chuàng)建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?OpenCV學(xué)習(xí)之Mat的基本操作詳解
OpenCV用來存儲圖像,很多時候都會用到這個Mat方法。數(shù)字圖像可看做一個數(shù)值矩陣,?其中的每一個元素表明一個像素點。Mat在?OpenCV?中表示的是?N?維稠密矩陣,與稠密矩陣相對的是稀疏矩陣。本文將重點介紹OpenCV中Mat的一些基本操作,需要的可以參考一下2022-03-03SpringBoot使用SensitiveWord實現(xiàn)敏感詞過濾
這篇文章主要為大家詳細介紹了SpringBoot如何使用SensitiveWord實現(xiàn)敏感詞過濾功能,文中示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-01-01Java開發(fā)學(xué)習(xí)之Bean的作用域和生命周期詳解
這篇文章主要介紹了淺談Spring中Bean的作用域,生命周期和注解,從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個過程就是一個生命周期。本文將通過示例為大家詳細講講,感興趣的可以學(xué)習(xí)一下2022-06-06