1. 程式人生 > 其它 >****spring 簡介, ioc 的bean工廠與di****

****spring 簡介, ioc 的bean工廠與di****

技術標籤:springjavabeanioc

一、spring(春天) ----軟體界的藝術品
官網:spring.io
1.spring是一個開源框架
2.spring是分層的java EE、一站式輕量級框架。
分層的java EE:
持久層: --mybatis
檢視層: – jsp /servlet
控制層: --servlet
一站式: java EE每層都有解決方案
輕量級:spring無侵入式 (低耦合,高內聚)

GA:General Availability,正式釋出的版本,官方推薦使用此版本。在國外都是用GA來說明release版本的。

PRE: 預覽版,內部測試版. 主要是給開發人員和測試人員測試和找BUG用的,不建議使用;

SNAPSHOT: 快照版,可以穩定使用,且仍在繼續改進版本。

(以前我們要自己new物件,現在spring幫我們new物件,以後我們需要物件,就找spring要)
在這裡插入圖片描述

spring 中為什麼叫bean工廠而不叫物件工廠?
1)物件 new Object(); 女朋友
2)bean 物件–>具有生命週期的----bean 老婆

spring bean工廠 (本質ioc容器)
你想讓bean工廠幫你new物件,首先要告訴spring bean工廠需要產生什麼物件?

    1)導包(導依賴)
    2)通過配置告訴spring bean工廠生產什麼樣的bean?
    方式1:基於xml配置  
                1)BeanFacotry             按需例項化
                2)  ApplicationContext  容器啟動例項化所有的bean
                        ClassPathXmlApplicationContext
                        FileSystemXmlApplicationContext
                            注意:classpath:spring-beans.xml
                            
                        WebApplicationContext   整合 mvc框架
                        
                3) 預設spring bean工廠中產生的bean都是單例bean ,可以通過scope屬性來修改
                    問題:scope="prototype" 通過factoryBean獲取有問題?
                    
                    預設scopre="singleton"  單列
      方式2:基於註解配置
            1、xml+註解配置
                
            2、java+註解配置
            
       方式3:基於java的配置
               注意:需要再多匯入一個包spring-aop-5.0.14.RELEASE.jar
             1)AnnotationConfigApplicationContext
                    @Configuration
                     @Bean(name="redPig")

總結:IOC是一種思想,為了減輕程式設計師自己new物件工作,實現IOC
方式,第1是自己工廠類(使用工廠模式) 第2是自己使用spring 的bean
工廠。

Di dependency Injection 依賴注入 (給屬性注入值)
1、set方法注入
2、構造方法注入
1)根據引數名進行注入 與引數順序無關,與構造方法定義的順序有關
2)根據引數下標進行注入

bean的屬性
id/name bean的唯一標示
id是bean的唯一標示
id和name可以同時寫 id是唯一標示 name別名
name也是bean唯一標示
class

        建議:一般建議使用id指定bean的唯一標示