1. 程式人生 > 其它 >Java EE學習筆記(第一章、第二章),入門程式、依賴注入、Bean的例項化、Bean的作用域、Bean的生命週期、Bean的裝配方式

Java EE學習筆記(第一章、第二章),入門程式、依賴注入、Bean的例項化、Bean的作用域、Bean的生命週期、Bean的裝配方式

一、入門程式

參考: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的裝配方式

參考:Spring深入淺出(七),自動裝配,byName/byType

Spring深入淺出(八),自動裝配,constructor