Java EE學習筆記(第一章、第二章),入門程式、依賴注入、Bean的例項化、Bean的作用域、Bean的生命週期、Bean的裝配方式
阿新 • • 發佈:2021-07-22
一、入門程式
參考:Spring深入淺出(一),基本概念,HelloWorld例項
二、依賴注入
參考:Spring深入淺出(五),依賴注入,建構函式/設值/注入內部Bean
Spring深入淺出(六),依賴注入,注入集合(含注入 Bean 引用)
三、Bean的例項化
1. 構造器例項化
參考:Spring深入淺出(一),基本概念,HelloWorld例項
2. 靜態工廠方式例項化
2.1 Bean類
package com.itheima.instance.static_factory; public class Bean2 { }
2.2Factory類
package com.itheima.instance.static_factory;public class MyBean2Factory { //使用自己的工廠建立Bean2例項 public static Bean2 createBean(){ return new Bean2(); } }
2.3 主程式
package com.itheima.instance.static_factory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class InstanceTest2 { public static void main(String[] args) { // 定義配置檔案路徑 String xmlPath = "com/itheima/instance/static_factory/beans2.xml"; // ApplicationContext在載入配置檔案時,對Bean進行例項化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); System.out.println(applicationContext.getBean("bean2")); } }
2.4 配置檔案
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="bean2" class="com.itheima.instance.static_factory.MyBean2Factory" factory-method="createBean" /> </beans>
Bean配置中的class屬性所指定的,不是Bean例項的實現類,而是靜態工廠類;同時需要使用factory-method屬性來指定所建立的靜態工廠方法。
3. 例項工廠方式例項化
3.1 Bean類
package com.itheima.instance.factory; public class Bean3 { }
3.2 例項工廠類
package com.itheima.instance.factory; public class MyBean3Factory { public MyBean3Factory() { System.out.println("bean3工廠例項化中"); } //建立Bean3例項的方法 public Bean3 createBean(){ return new Bean3(); } }
3.3 主程式
package com.itheima.instance.factory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class InstanceTest3 { public static void main(String[] args) { // 指定配置檔案路徑 String xmlPath = "com/itheima/instance/factory/beans3.xml"; // ApplicationContext在載入配置檔案時,對Bean進行例項化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); System.out.println(applicationContext.getBean("bean3")); } }
3.4 配置檔案
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <!-- 配置工廠 --> <bean id="myBean3Factory" class="com.itheima.instance.factory.MyBean3Factory" /> <!-- 使用factory-bean屬性指向配置的例項工廠, 使用factory-method屬性確定使用工廠中的哪個方法--> <bean id="bean3" factory-bean="myBean3Factory" factory-method="createBean" /> </beans>
配置檔案中,需要例項化的Bean,不是通過class屬性直接指向的例項化類,而是通過factory-bean屬性指向配置的例項工廠,然後通過factory-method屬性確定使用工廠聽哪個方法。
四、Bean的作用域
singleton(單例)/prototype(原型)/request/session/globalSession/application/websocket
五、Bean的生命週期
六、Bean的裝配方式