如何确认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
    评论
### 回答1: Spring使用IoC(Inversion of Control)容器来管理对象创建和依赖注入。在Spring中,我们只需要定义好对象,然后在配置文件中通过配置bean的方式告诉Spring需要创建这个对象,同时还可以指定对象的属性值、依赖关系等。这样,当应用程序启动时,Spring会自动扫描配置文件中定义的bean,根据的信息创建对象并将其存储在IoC容器中。当需要使用这些对象时,只需要从容器中获取即可。这种方式大大简化了对象创建和管理,提高了应用程序的可维护性和可扩展性。 ### 回答2: Spring一个开源的Java开发框架,它提供了一种简化和优化Java应用程序开发的方式。在Spring创建对象是通过控制反转(IoC)和依赖注入(DI)实现的。 在Spring中,对象创建过程由Spring容器来管理。我们需要在配置文件中定义对象创建和初始化方式,然后由Spring容器根据这些配置信息来动态地创建和管理对象Spring通过XML配置文件或者注解的方式来定义对象创建方式。在配置文件中,我们可以定义对象名、构造函数参数、属性值等信息。Spring容器会根据这些配置信息来创建对象,并且将对象的引用注入到需要的地方。 通过IOC和DI,Spring实现了对象的解耦和松散耦合。在传统的开发方式中,对象之间的依赖关系是通过代码硬编码来实现的,导致代码的复杂性和可维护性降低。而在Spring中,对象之间的依赖关系由Spring容器来管理,我们只需在配置文件中定义好依赖关系,就可以实现对象创建和组装。 总之,Spring对象创建方式是通过IOC和DI实现的,它能够简化和优化Java应用程序开发过程,提高代码的可维护性和可重用性。 ### 回答3: Spring一个开源的Java框架,通过使用Spring容器来管理和创建对象Spring创建对象的理解可以分为以下几个方面: 首先,Spring使用依赖注入(DI)的方式来创建对象。通过配置文件或注解,我们可以告诉Spring需要创建对象以及其依赖的其他对象Spring容器根据这些配置信息,在运行时动态地创建对象并将其注入到需要使用的地方。 其次,Spring对象创建是基于反射机制的。Spring通过反射来实例化,而不需要我们手动调用构造函数。这样可以减少代码的复杂性,并且可以通过配置灵活地替换和切换不同的实现。 另外,Spring对象创建是单例模式的。Spring容器默认情况下会创建单例的对象,这样可以节省资源并提高性能。当我们需要使用某个对象时,Spring会直接返回之前创建的实例,而不是每次都创建一个新的实例。 最后,Spring还提供了一些特殊的对象创建方式,比如原型模式、工厂模式等。这些方式可以根据我们的需求来创建不同型的对象,并且可以根据配置来指定具体的创建方式。 总结来说,Spring对象创建是通过依赖注入、基于反射机制和单例模式来实现的。这样可以减少我们手动创建对象的工作量,提高代码的可维护性和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值