Spring中的Bean的配置及其实例化的三种方法

一、Bean的配置
1.什么是Spring中的Bean

在这里插入图片描述

2.Spring容器支持的两种格式的配置文件

在这里插入图片描述

properties文件和xml文件区别:
 1、从结构上来说:
       .xml文件主要是树形结构。
   .properties文件主要是以key-value键值对的形式存在。
  2、从灵活程度上来说:
          .xml格式的文件要比.properties格式的文件更灵活一些
   .properties格式的文件已键值对形式存在,主要就是赋值,而且只能赋值,不能够进行其他的操作。
   .xml格式的文件可以有多种操作方法,例如添加一个属性,或者做一些其他的定义等。
  3、从使用便捷程度来说:  
        .properties格式的文件要比.xml文件配置起来简单一些。
   配置.properties只需要简单的getProperty(key)方法或者setProperty(key,value)方法就可以读取或者写入内容;
   配置.xml文件的时候通常要查看文档,因为配置比较繁琐,花费时间长才可以配置完整。

  4、从应用程度上来说:
      .properties文件比较适合于小型简单的项目。
   .xml文件适合大型复杂的项目,因为它比较灵活。
3.XML的配置

在这里插入图片描述

二、Bean的实例化
1.Bean的构造器实例化

在这里插入图片描述

在官方文档里 spring-framework-4.3.6.RELEASE\docs\spring-framework-reference\html 目录下找到index.html 找到
7.2.1 Configuration metadata

     <?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">
            <!--spring-beans-4.3这里的4.3是指明版本号  -->
            <bean id="bean1" class="com.lin.instance.contructor.Bean1"></bean>
            
    </beans>
package com.lin.instance.contructor;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

//测试类
public class InstanceTest1 {
public static void main(String[] args) {
	//定义配置文件路径
	String xmlPath="com/lin/instance/contructor/beans1.xml";
	
	//
	ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
	
	
	Bean1 bean1=(Bean1) applicationContext.getBean("bean1");//获取xml文件里面的id
	System.out.println(bean1);//打印的地址com.lin.instance.contructor.Bean1@3a03464
}
}

附上其他代码

package com.lin.instance.contructor;

public class Bean1 {

}

测试类

package com.lin.instance.contructor;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

//测试类
public class InstanceTest1 {
public static void main(String[] args) {
	//定义配置文件路径
	String xmlPath="com/lin/instance/contructor/beans1.xml";
	
	//
	ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
	
	
	Bean1 bean1=(Bean1) applicationContext.getBean("bean1");//获取xml文件里面的id
	System.out.println(bean1);//打印的地址com.lin.instance.contructor.Bean1@3a03464
}
}

文件结构
在这里插入图片描述

2.Bean的静态工厂实例化

在这里插入图片描述
1.创建Bean的实体类

package com.lin.instance.static_factory;

public class Bean2 {

}

2.创建静态工厂类

package com.lin.instance.static_factory;

public class MyBean2Factory {

	public static Bean2 createBean2() {
		
		return new Bean2();
		
	}
}

3.配置xml文档

package com.lin.instance.static_factory;

public class MyBean2Factory {

	public static Bean2 createBean2() {
		
		return new Bean2();
		
	}
}

4.编写测试类

package com.lin.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/lin/instance/static_factory/beans2.xml";
	ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
    Bean2 bean2=(Bean2) applicationContext.getBean("bean2");
   System.out.println(bean2);
	
}
}

3.Bean的实例工厂实例化

在这里插入图片描述
1.创建Bean的实体类

package com.lin.instance.factory;

public class Bean3 {

}

2.创建实例工厂类

package com.lin.instance.factory;

public class MyBean3Factory {
	public MyBean3Factory() {
		System.out.println("bean3工厂实例化");
	}
 public Bean3 createBean3() {
	 
	 return new Bean3();
 }
}

3.配置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
        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
        <!--spring-beans-4.3这里的4.3是指明版本号  -->
        <!-- 配置工厂 -->
       <bean id="myBean3Factory" class="com.lin.instance.factory.MyBean3Factory"></bean>
       <!-- 使用factory-bean属性指向配置的实例工厂
       	使用factory-method属性确定使用工厂中的那个方法
        -->
       <bean id="bean3" factory-bean="myBean3Factory" factory-method="createBean3"></bean>
       
</beans>

4.编写测试类

package com.lin.instance.factory;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class InstanceTest3 {
	public static void main(String[] args) {
		//制定配置文件路径
		String xmlString="com/lin/instance/factory/beans3.xml";
		//ApplicationContext在加载配置文件时,对Bean进行实例化
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlString);

		System.out.println(applicationContext.getBean("myBean3Factory"));
	}
}

整体截图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值