一個包含了眾多工具方法的 IoC 容器
目前創(chuàng)新互聯(lián)公司已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、鶴山網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。okk~~分析一下這句話意思,眾多方法,IoC 是形容詞,容器是名詞 ->
眾多方法:比如一個類里有許多方法, 容器:存儲的東西 重點就是IoC是什么?
IoC ->Inversion of Control 控制反轉(zhuǎn) ->對象的生命周期 ->控制權(quán): 由程序猿 變?yōu)?Spring IoC
簡單來說 Java里的對象的創(chuàng)造和銷毀都是被程序猿掌控的, 但是IoC的話 就變了, 掌控這些的不是程序猿了,而是Spring
2.2 意義所以,把對象的生命周期的控制權(quán)交出去了,有什么好處?
~解耦合!!!!
每個對象都要程序猿創(chuàng)建,如果1的創(chuàng)建需要2,2的創(chuàng)建需要3..... 那么當(dāng)代碼出現(xiàn)異常,76出現(xiàn)了bug - >前面的1到75就會都有問題產(chǎn)生 ->所以這個時候,好處顯而易見
~并且,對象的生命周期交給IoC維護, 作為程序猿無需關(guān)注
其實IoC只是一個思想, 那么具體的實現(xiàn)其實是 DI
DI ->Dependency Injection 依賴注入
IoC DI 從不同的維度描述了同一件事 比如->我的計劃和實際操作(我要學(xué)會一門樂器->鋼琴十級了現(xiàn)在)
spring.xml的代碼
pom.xml
org.springframework spring-context5.2.3.RELEASE org.springframework spring-beans5.2.3.RELEASE
1.1.3創(chuàng)建spring對象
ApplicationContext BeanFactory 區(qū)別:
* 相同:
都可以實現(xiàn)從容器中獲取 bean, 都提供了 getBean的方法
* 不相同:
* 1.ApplicationContext 是 BeanFactory 的子類,
* BeanFactory只提供了基礎(chǔ)訪問 Bean的方法
* ApplicationContext 除了擁有 BeanFactory的所有功能外,還提供了更多的方法,對國際化的支持,資源訪問支持...
* 2.性能方面
* BeanFactory 按需加載 Bean
* ApplicationContext餓漢模式, 創(chuàng)建的時候所有 Bean都加載了(貌似是智能的,電腦空間夠,才行,不夠的話,還是按需加載)
2.簡單的創(chuàng)建 2.1創(chuàng)建 - 5大類注解org.springframework spring-context5.2.3.RELEASE org.springframework spring-beans5.2.3.RELEASE
2.1.2 5大類注解
2.1.2.1 5大類注解@Controller 控制器 業(yè)務(wù)邏輯層
@Service 服務(wù) 服務(wù)層
@Repository 倉庫 持久層
@Configuration 配置 配置層
@Component 組件
2.1.2.2 5大類注解的意義@Configuration ->@Controller 控制器 (前端參數(shù)的校驗) ->@Service(數(shù)據(jù)的組裝,接口的調(diào)用) ->@Repository(和數(shù)據(jù)庫進行交互)
可以讓代碼可讀性提高, 讓程序員快速知道當(dāng)前類的用途
比如 Java里的 @Override 看到就知道被標(biāo)注的方法重載了父類的方法
2.1.2.3 5大類注解的關(guān)系其他四個類本身是屬于 @Component 的“?類”--看源碼
public static void main(String[] args) {
String name1 = "user";
String name2 = "USER";
System.out.println(Introspector.decapitalize(name1));
System.out.println(Introspector.decapitalize(name2));
}
2.2創(chuàng)建-使用方法注解@Bean
2.2.1使用方法注解@Bean
設(shè)置 name 屬性給 Bean 對象進?重命名
* Bean 的命名規(guī)則 :
* 當(dāng)沒有設(shè)置 name屬性時, 那么 bean的默認(rèn)名稱時方法名
* 通過重命名的 name屬性對應(yīng)值來獲取后, 只能用重命名, 不能再用方法名
name={} 可以省略
* Bean 的命名可以起多個名字 :
但是會有問題--同?類型多個 @Bean 報錯
* @Bean 將一個類型的對象注入多次
* 解決方案三個
* 1. 精確的描述 bean的名稱
* 2. 使用 @Resource設(shè)置 name的方法來重新命名注入對象 @Resource(name="user")
* 3. 使用 @Autowired+ @Qualifier來篩選 bean對象
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
名稱欄目:是Spring啊!-創(chuàng)新互聯(lián)
文章地址:http://www.rwnh.cn/article8/csdpop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、面包屑導(dǎo)航、服務(wù)器托管、外貿(mào)網(wǎng)站建設(shè)、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容