4、Spring IOC容器 Bean物件例項化的3種方式
一、構造器例項化(預設方式):要求Bean物件中要提供無參構造
TypeDao:bean物件
public class TypeDao {
private String str;
//無參構造
public TypeDao() {
}
public TypeDao(String str) {
this.str = str;
}
public void test(){
System.out.println("TypeDao Test...");
}
}
配置檔案:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
構造器例項化
對應的Bean物件需要提供空構造
-->
<bean id="typeDao" class="com.xxxx.dao.TypeDao"></bean>
</beans>
例項化測試:
BeanFactory factory = new ClassPathXmlApplicationContext("spring02.xml");
TypeDao typeDao = (TypeDao) factory.getBean("typeDao");
typeDao.test();
如果沒有提供無參構造則會報錯:
二、靜態工廠例項化:
Bean物件:
public class TypeService {
public void test(){
System.out.println("TypeService Test...");
}
}
靜態工廠類:
/**
* Created by Jack on 2020.12.18.
* 定義靜態工廠類
*/
public class StaticFactory {
/**
* 定義對應的靜態方法
* @return
*/
public static TypeService createService(){
return new TypeService();
}
}
spring配置檔案:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
靜態工廠例項化
1、定義工廠類及對應的靜態方法
2、配置bean物件對應的工廠類及靜態方法
id:需要被例項化的bean物件的id
class:靜態工廠類的路徑
factory-method:靜態工廠類中例項化bean物件的方法
-->
<bean id="typeService" class="com.xxxx.factory.StaticFactory" factory-method="createService"></bean>
</beans>
例項化測試:
//靜態工廠例項化
TypeService typeService = (TypeService) factory.getBean("typeService");
typeService.test();
三、例項化工廠例項化
Bean物件:
public class TypeController {
public void test(){
System.out.println("TypeController Test...");
}
}
例項化工廠:
/**
* Created by Jack on 2020.12.18.
* 定義例項化工廠
*/
public class InstanceFactory {
/**
* 定義方法
* @return
*/
public TypeController createController(){
return new TypeController();
}
}
spring配置檔案:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
例項化工廠
1、定義工廠類及對應的方法
2、配置工廠物件
3、配置bean物件對應的工廠物件及工程方法
factory-bean:工廠物件對應的id屬性值
factory-method:工廠類中的方法
-->
<!--工廠物件-->
<bean id="instanceFactory" class="com.xxxx.factory.InstanceFactory"></bean>
<!--bean物件-->
<bean id="typeController" factory-bean="instanceFactory" factory-method="createController"></bean>
</beans>
例項化測試:
//例項化工廠例項化
TypeController typeController = (TypeController) factory.getBean("typeController");
typeController.test();
相關文章
- Spring Ioc原始碼分析系列--容器例項化Bean的四種方法Spring原始碼Bean
- 死磕Spring之IoC篇 - Bean 的例項化階段SpringBean
- 【spring 原始碼】IOC 之bean例項的建立Spring原始碼Bean
- Spring Ioc原始碼分析系列--Bean例項化過程(一)Spring原始碼Bean
- Spring Ioc原始碼分析系列--Bean例項化過程(二)Spring原始碼Bean
- Spring原始碼分析(二)bean的例項化和IOC依賴注入Spring原始碼Bean依賴注入
- Spring基礎之 IOC九種bean宣告方式SpringBean
- bean例項化的三種方法Bean
- Spring Bean的3種裝配方式SpringBean
- Spring IOC 一——Spring容器裝配BeanSpringBean
- Java開發學習(四)----bean的三種例項化方式JavaBean
- Spring實現IOC容器的兩種實現方式Spring
- Spring中Bean的例項化詳細流程SpringBean
- Spring IoC bean 的初始化SpringBean
- 【Java面試】Spring中有哪些方式可以把Bean注入到IOC容器?Java面試SpringBean
- C#例項化物件的三種方式及效能對比C#物件
- Java獲取Class物件的方式和例項化物件的方式Java物件
- Spring Bean 的例項化過程原始碼解析SpringBean原始碼
- spring-IOC容器原始碼分析(一)bean初始化流程Spring原始碼Bean
- Spring基礎使用(一)--------IOC、Bean的XML方式SpringBeanXML
- Spring(十二):IOC容器中Bean的生命週期方法SpringBean
- Spring 原始碼分析之 bean 例項化原理Spring原始碼Bean
- Spring 原始碼學習 - 單例bean的例項化過程Spring原始碼單例Bean
- Spring注入Bean的幾種方式SpringBean
- 如何向Spring IOC 容器 動態註冊beanSpringBean
- spring註冊bean的幾種方式SpringBean
- Spring中bean的四種注入方式SpringBean
- Spring 例項化方式有幾種?為什麼會用到 Cglib?SpringCGLib
- php例項化物件的例項方法PHP物件
- Spring的IOC容器Spring
- Spring IoC bean 的建立(上)SpringBean
- Spring框架系列(8) - Spring IOC實現原理詳解之Bean例項化(生命週期,迴圈依賴等)Spring框架Bean
- Spring中用註解建立bean例項SpringBean
- 獲取Spring容器中Bean例項的工具類(Java泛型方法實現)SpringBeanJava泛型
- 解密Spring中的Bean例項化:推斷構造方法(上)解密SpringBean構造方法
- Spring容器 —— 深入 bean 的載入(五、初始化 bean)SpringBean
- Spring Bean容器SpringBean
- Spring系列(一):Spring MVC bean 解析、註冊、例項化流程原始碼剖析SpringMVCBean原始碼