spring学习之实例化bean

筅森魡賤 提交于 2020-02-12 04:55:24

实例化有三种方式:构造器,静态工厂,实例工厂。最常用的还是构造器实例化。

新建动态网站项目,命名为chapter02,项目结构:

ps:beans1.xml是在包下面不是在src下面

Bean1.java

1 package com.tiheima.instance.contructor;
2 
3 public class Bean1 {
4     
5 }

beans1.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://www.springframework.org/schema/beans
5         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
6     <bean id="beans1" class="com.tiheima.instance.contructor.Bean1"></bean>
7 </beans>

InstanceTest.java

 1 package com.tiheima.instance.contructor;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 /*bean1是构造器实例化测试*/
 7 public class InstanceTest {
 8 
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         String xmlpathString="com/tiheima/instance/contructor/beans1.xml";
12         ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlpathString);
13         Bean1 bean1=(Bean1)applicationContext.getBean("beans1");
14         System.out.println(bean1);
15     }
16 
17 }

 截图:

上面是构造器实例化实例bean,从输出可以看出,创建了一个Bean1的对象。

Bean2.java

1 package com.tiheima.instance.static_factory;
2 
3 public class Bean2 {
4 
5 }

Bean2Factory.java

package com.tiheima.instance.static_factory;

public class Bean2Factory {
    public static Bean2 creatBean2() {
        return new Bean2();
    }
}

StaticFactoryTest.java

 1 package com.tiheima.instance.static_factory;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 /*bean2是静态工厂实例化测试*/
 7 public class StaticFactoryTest {
 8 
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         String xmlpathString="com/tiheima/instance/static_factory/beans2.xml";
12         ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlpathString);
13         Bean2 bean2=(Bean2)applicationContext.getBean("beans2");
14         System.out.println(bean2);
15     }
16 
17 }

bean2.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
 6     
 7     <bean id="beans2" class="
 8     com.tiheima.instance.static_factory.Bean2Factory" 
 9     factory-method="creatBean2"></bean>
10 </beans>

截图:

上面是静态工厂实例化bean,输出了一个Bean2的对象

Bean3.java

1 package com.tiheima.instance.factory;
2 
3 public class Bean3 {
4 
5 }

Bean3Factory.java

 1 package com.tiheima.instance.factory;
 2 
 3 public class Bean3Factory {
 4     public Bean3 creatBean3() {
 5         return new Bean3();
 6     }
 7     public Bean3Factory() {
 8         System.out.println("实例化Bean3中");
 9     }
10 }

FactoryBean3Test

 1 package com.tiheima.instance.factory;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 /*实例化工厂实例化bean*/
 7 public class FactoryBean3Test {
 8 
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         String xmlpathString="com/tiheima/instance/factory/beans3.xml";
12         ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlpathString);
13         Bean3 bean3=(Bean3)applicationContext.getBean("beans3");
14         System.out.println(bean3);
15     }
16 
17 }

beans3.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
 6     <!-- 配置工厂 -->
 7     <bean id="bean3Factory" class="com.tiheima.instance.factory.Bean3Factory"></bean>
 8     <!-- 使用factory-bean标签指向配置好的实例工厂,使用factory-method确定使用工厂的方法 -->
 9     <bean id="beans3" factory-bean="bean3Factory" factory-method="creatBean3" ></bean>
10 </beans>

截图:

上面是工厂实例化bean,输出了一个bean3对象以及factory中的构造函数。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!