Spring概念和三种对象创建方式

概念

Spring

在这里插入图片描述
Spring属于容器性质,对每一层都提供技术支持。就像一个工厂,可以将所有对象创建和依赖关系维护交给Spring管理。

IOC ( 反转控制)

对象的创建及依赖关系的注入交由Spring。

DI(依赖注入)

注入方式:set方法注入、构造方法注入、字段注入
注入类型:值类型、引用类型

BeanFactory

原始接口,每次获得对象时才会创建。

ApplicationContext

容器一启动就会创建创建容器中配置的所有对象。

Bean元素的scope属性

  • singleton:单例对象,在容器中只存在一个实例。默认为singleton。
  • prototype:多例原型,每次创建都是新的对象。
  • 此外还有request、session等。

三种对象创建方式

构造器实例化

Bean:

	public class Bean {
    }

测试类

   public class TestConstructor {
       public static void main(String[] args){
           ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
           Bean bean1= (Bean) applicationContext.getBean("bean");
           System.out.println(bean1);
       }
    }

applicationContext.xml

	<bean id="bean" class="com.me.bean.instance.constructor.Bean"></bean>

静态工厂方式实例化

Bean

	public class Bean2 {
	}

工厂类

	public class StaticFactory {
	    public static Bean2 getBean(){
	        return new Bean2();
	    }
	}

测试类

	public class TestStaticFactory {
	    public static void main(String[] args){
	        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
	        Bean2 bean2=(Bean2)applicationContext.getBean("bean2");
	        System.out.println(bean2);
	    }
	}

applicationContext.xml

	<bean id="bean2" class="com.me.bean.instance.static_factory.StaticFactory" factory-method="getBean"></bean>

实例工厂方式实例化

Bean

	public class Bean3 {
	}

工厂类

	public class InstanceFactory {
	    public Bean3 getBean(){
	        return new Bean3();
	    }
	}

测试类

	public class TestInstanceFactory {
	    public static void main(String[] args){
	        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
	        Bean3 bean3=(Bean3)applicationContext.getBean("bean3");
	        System.out.println(bean3);
	    }
	}

applicationContext.xml

	 <bean id="instanceFactory" class="com.me.instance.instance_factory.InstanceFactory"></bean>
	<bean id="bean3" factory-bean="instanceFactory" factory-method="getBean"></bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值