Spring的依賴注入、控制反轉
阿新 • • 發佈:2022-04-05
依賴注入和控制反轉
從spring的角度來說是控制反轉,把類例項化的權力給了spring框架。
從java程式的角度來說,controller類等元件注入java web應用程式中,java程式需要元件來出去各種請求,卻不需要管理各個元件的生命週期,元件的生命週期交給spring進行管理。
在springmvc框架中,應用程式把springmvc框架解耦成一個具有相對獨立的元件,不需要關注這些元件何時建立,銷燬。當元件A需要使用元件B的時候,springmvc框架可以保證元件B的例項和可以隨叫隨到。
spring框架中規定的bean的5種存在範圍:scope
single:單例,整個應用程式中,sping框架只建立一個bean例項。預設情況。 優點是節省記憶體空間,缺點是當大量客戶訪問的時候容易造成併發問題。 prototype:原型範圍,每次程式訪問bean時都會建立一個新的例項。 request:每個http請求建立一個例項。 session:每個會話建立一個例項。 application:web應用範圍,整個web應用,spring會建立一個例項。 signal和prototype適用於所有的程式。 request,session,application只使用與web程式
向spring框架註冊Bean元件
1,方式一: 用@Controller,@Service和@Respository等註解標識一個類。 2,方式二: 在spring配置檔案或spring分支的配置檔案中使用<bean>元素註冊Bean元件 <bean class="test.CustomerServiceImpl" scope="application"/> 3,方式三: 在程式中用@Bean註解註冊Bean元件 @Configuration public class MyConfig { @Bean("demoComponent") @Scope public DemoComponent create() { return new DemoComponent(); } }