雲棲號資訊:【點擊查看更多行業資訊】
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
- 通過構造方法實例化
- 通過靜態工廠實例化
- 通過實例工廠實例化
- 通過FactoryBean實例化
RumenzA實體類
package com.rumenz;
public class RumenzA {
private String id;
private String name;
public static RumenzA createRumenzA(){
RumenzA rumenzA=new RumenzA();
rumenzA.setId("123");
rumenzA.setName("入門小站");
return rumenzA;
}
public RumenzA() {
System.out.println("RumenzA 無參構造方法");
}
public RumenzA(String id) {
this.id = id;
System.out.println("ID構造方法");
}
// set get省略
}
構造方法
beans.xml
<?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 id="rumenz" class="com.rumenz.RumenzA" />
<bean id="rumenz1" class="com.rumenz.RumenzA">
<constructor-arg name="id" value="1"/>
</bean>
</beans>
DemoApplication.java
package com.rumenz;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DemoApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext ca=new ClassPathXmlApplicationContext("beans.xml");
RumenzA rumenzA=(RumenzA)ca.getBean("rumenz");
}
}
輸出
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rumenz'
RumenzA 無參構造方法
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rumenz1'
ID構造方法
靜態工廠
beans.xml
<?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 id="rFactory" class="com.rumenz.RumenzFactory" factory-method="rumenzFactory"/>
<bean id="rFactory1" class="com.rumenz.RumenzFactory" factory-method="rumenzFactory">
<constructor-arg name="id" value="111"/>
</bean>
</beans>
RumenzFactory工廠類
package com.rumenz;
public class RumenzFactory {
//靜態方法
public static RumenzA rumenzFactory(){
return new RumenzA();
}
public static RumenzA rumenzFactory(String id){
return new RumenzA(id);
}
}
DemoApplication.java
package com.rumenz;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DemoApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext ca=new ClassPathXmlApplicationContext("beans.xml");
}
}
輸出
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rFactory'
RumenzA 無參構造方法
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rFactory1'
ID構造方法
實例工廠實例化
<?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 id="rFactory" class="com.rumenz.RumenzFactory" />
<bean id="rumenz" factory-bean="rFactory" factory-method="rumenzFactory"></bean>
<bean id="rumenz1" factory-bean="rFactory" factory-method="rumenzFactory">
<constructor-arg name="id" value="666"></constructor-arg>
</bean>
</beans>
RumenzFactory.java
package com.rumenz;
public class RumenzFactory {
//不能用靜態方法
public RumenzA rumenzFactory(){
return new RumenzA();
}
public RumenzA rumenzFactory(String id){
return new RumenzA(id);
}
}
DemoApplication.java
package com.rumenz;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DemoApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext ca=new ClassPathXmlApplicationContext("beans.xml");
//RumenzA rumenzA=(RumenzA)ca.getBean("rFactory1");
}
}
輸出
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rumenz'
RumenzA 無參構造方法
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rumenz1'
ID構造方法
通過FactoryBean實例化
beans.xml
<?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 id="rumenz-by-factoryBean" class="com.rumenz.RumenzAFactoryBean"/>
</beans>
RumenzAFactoryBean.java
package com.rumenz;
import org.springframework.beans.factory.FactoryBean;
public class RumenzAFactoryBean implements FactoryBean {
@Override
public Object getObject() throws Exception {
return RumenzA.createRumenzA();
}
@Override
public Class<?> getObjectType() {
return RumenzA.class;
}
}
DemoApplication.java
package com.rumenz;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DemoApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext ca=new ClassPathXmlApplicationContext("beans.xml");
RumenzA rumenzA=(RumenzA)ca.getBean("rumenz-by-factoryBean");
}
}
輸出/異步加載bean
xxx.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rumenz-by-factoryBean'
RumenzA 無參構造方法
【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK
原文發佈時間:2020-06-28
本文作者:入門小站
本文來自:“掘金”,瞭解相關信息可以關注“掘金”