Spring基础学习笔记(二)

本文深入探讨Spring框架的基本组成部分,包括源码根目录、最少添加的jar文件、applicationContext.xml的标准命名及其XML配置示例。同时,文章对比了BeanFactory与ApplicationContext的不同,特别是实例化bean对象的时机,并介绍了使用Junit进行Spring测试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

源码根目录(spring-framework-4.1.2.RELEASE)

最少添加jar文件

applicationContext.xml标准命名

配置文件的提示信息(代码提示)

Junit

BeanFacotry.getBean方法(测试现在都用的少,用的多的是spring-test-4.1.2.RELEASE注解测试)

API

ApplicationContext(是BeanFactory的子接口)

web.xml:提供web程序用法

面试题:

最重要的区别:实例化bean对象的时机


源码根目录(spring-framework-4.1.2.RELEASE

最少添加jar文件

applicationContext.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.xsd">

<!-- id对应于对象的名称,class类似于new 后面的类名:全限定类名,一般都不能写接口和抽象类  -->
 <bean id="myBean" class="cn.mytest.spring.day1.d_test.MyBean" ></bean>

</beans>

配置文件的提示信息(代码提示)

Junit

public class MainTest {

	@Test
	public void testName() throws Exception {
		// 解析配置文件
		ClassPathResource resource = new ClassPathResource("applicationContext.xml");
		// 获取BeanFactory
		BeanFactory beanFactory = new XmlBeanFactory(resource);
		// 通过bean.id获取bean对象
		MyBean bean = (MyBean) beanFactory.getBean("myBean");
		// 调用方法
		String hi = bean.hi("小红");
		System.out.println(hi);
	}

}

BeanFacotry.getBean方法(测试现在都用的少,用的多的是spring-test-4.1.2.RELEASE注解测试)

第一种

根据bean id获取bean的实例,如果定义了2个bean不会报错(获取对象必须要强转)

                // 通过bean.id获取bean对象
		// 根据bean id获取bean的实例,如果定义两个bean不会报错
		// 获取对象必须强转
		MyBean bean = (MyBean) beanFactory.getBean("myBean");
<!-- id对应于对象的名称,class类似于new 后面的类名:全限定类名,一般都不能写接口和抽象类  -->
 <bean id="myBean" class="cn.mytest.spring.day1.b_beanfactory.MyBean"></bean>
 <bean id="myBean1" class="cn.mytest.spring.day1.b_beanfactory.MyBean"></bean>

第二种

除了类型不用强转,其他同第一种

                // 通过bean.id获取bean对象
		// 除了类型不用强转,其他同第一种
		MyBean bean = beanFactory.getBean("myBean", MyBean.class);

第三种

必须要求配置文件里面只能配置一个MyBean的实例,配置多个异常:

		// 通过bean.id获取bean对象
		// 必须要求配置文件里面只能配置一个MyBean的实例,配置多个异常
		MyBean bean = (MyBean) beanFactory.getBean(MyBean.class);

API

ApplicationContext(是BeanFactory的子接口)

功能更多

应用上下文件ApplicationContext是建立在BeanFactory基础上的一种更高层次的Spring IoC容器,其除了具有普通BeanFactory的全部功能以外,还加入了以下功能:

提供了文本信息解析工具,包括I18N的支持

提供了载入文件资源的通用方法

提供了发送事件的功能

	@Test
	public void testName2() throws Exception {

		ApplicationContext context = new ClassPathXmlApplicationContext("cn/mytest/spring/day1/c_application/bean.xml");
		 MyBean bean = (MyBean) context.getBean("myBean");
		 String hi = bean.hi("小红");
		 System.out.println(hi);
	}

web.xml:提供web程序用法

面试题:

问ApplicationContext和BeanFactory的区别

最重要的区别:实例化bean对象的时机

ApplicationContext和BeanFactory的一个比较重要的区别就是,

ApplicationContext会在启动的时候自动去初始化配置的bean(默认配置),

而BeanFactory只是在用到bean的时候再去初始化Bean。

这个过程可以通过bean的construtor来跟踪。

 

而通过lazy-init配置,可以手动的在ApplicationContext环境下控制bean的初始化时机。如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:

<beans default-lazy-init="true“ ...>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值