如何确认spring容器创建了某个对象

如果监听器加载了applicationContext.xml文件,就会创建spring容器,相应的,也会根据配置的对象,创建对象,如果确定spring容器是否加载,可以通过以上两种方式解决:

1、咱们自己改错applicationContext.Xml文件,或者web.xml文件,此时不要管编译错误,直接开启服务器,如果没有报错的话,说明没有加载到,相应的配置文件,然后再进行相应的处理

2、使用spring的配置对象的方法,加假如配置文件有以下四个对象,

<!-- 简单类型注入-构造方法注入 -->
	<bean name="user1" class="cn.itcast.domain.User"   >
		<!-- constructor-arg 属性: 代表一个构造方法参数 
			定位属性:
				name属性:指定构造方法的参数名称
				index属性:指定参数在参数列表中的索引
				type属性:指定参数的类型
			赋值属性:
				value属性:指定参数值
				ref属性: 引用容器中的其他对象
		-->
		<constructor-arg  name="name" index="0" value="jerry" ></constructor-arg>
		<constructor-arg  name="age" type="java.lang.Integer" value="16" ></constructor-arg>
		<!-- <constructor-arg  name="car"  ref="car" ></constructor-arg> -->
	</bean>
	<!-- get/set方法注入-property标签 -->
	<!-- 
			property元素: 代表调用一个set方法
				name属性:属性名
				value属性:为属性赋值(值类型)
				ref属性:注入对象类型值
	 -->
	<bean name="user2" class="cn.itcast.domain.User" >
		<property name="name" value="jack"></property>
		<property name="age" value="18"></property>
		<property name="car" ref="car"></property>
	</bean>
	<!-- get/set方法注入-p名称空间
			与property标签配置性质上没有什么区别.
			出现时间比property标签要晚.
		准备:引入p名称空间 =>xmlns:p="http://www.springframework.org/schema/p" 
	 -->
	<bean name="user3" class="cn.itcast.domain.User" 
					p:name="rose" p:age="20" p:car-ref="car" >
	</bean>
	
	<!-- spel表达式 
			使用在值类型属性赋值中
			#{user3.name} : 引用user3的name属性值
	-->
	<bean name="user4" class="cn.itcast.domain.User" >
		<property name="name" value="#{user3.name}"></property>
		<property name="age" value="#{user2.age}"></property>
		<property name="car" ref="car"></property>
	</bean>
	
	
	<bean name="car" class="cn.itcast.domain.Car" >
		<property name="name" value="布加迪威航"></property>
	</bean>

这个时候在有参构造还有无参构造方法里面,输出一句话

	public User() {
		System.out.println("user对象被创建了");
	} 
	public User(String name, Integer age) {
		super();
		System.out.println("public User(String name, Integer age)");
		this.name = name;
		this.age = age;
	}
	public Car() {
		super();
		System.out.println("对象被创建了");
		// TODO Auto-generated constructor stub
	}

创建spring容器

	@Test
	public void fun1(){
		
		//1 创建spring容器
		ClassPathXmlApplicationContext ac = 
					new ClassPathXmlApplicationContext("/cn/itcast/c_injection/injection.xml");
		//2 从容器中获得指定对象
		//User user1 = (User) ac.getBean("user1");
		//3 打印对象,看效果
		//System.out.println(user1);
	}

此时输出的结果:

public User(String name, Integer age)
user对象被创建了
对象被创建了
user对象被创建了
user对象被创建了

结果正好与配置的对象在applicationContext.xml中出现的顺序相关,我们也可以依次来判断spring创建容器后,某个对象是否创建!!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值