spring学习

Spring 中的 Bean 配置
1.配置bean
基于形式:基于xml的二年间的方式;基于注解的方式
配置方法:通过全类名(反射),通过工厂方法(静态工厂方法&实例工厂方法),FactoryBean
IOC容器BeanFactory&ApplicationContext概述
依赖注入方式:属性注入,构造器注入
bean之间的关系;继承;依赖
bean的作用域:singleton;peotoype;web环境作用域
使用外部属性文件

main方法

		//第一步创建spring IOC容器 ApplicationContext 实际上是一个接口
		//ClassPathXmlApplicationContext是ApplicationContext接口实现类,该实现类从类路径下加载配置文件
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//利用类型获取ICO中的bean,但要求IOC中只有一个该类型的bean
		//HelloWorld helloWorld = (HelloWorld) ctx.getBean(HelloWorld.class);
		//第二步从IOC容器中获取beans实例 利用id定位到IOC中的beans
		HelloWorld hellWorld = (HelloWorld) ctx.getBean("helloWorld");
		System.out.println(hellWorld);
		//3调用hello方法
		//	hellWorld.hello();
		
		//第一个bean配置
		Car car =(Car) ctx.getBean("car");
		System.out.println(car);
		//第二个bean配置
		car =(Car) ctx.getBean("car2");
		System.out.println(car);

bean配置

<!-- 通过构造器方法来配置bean的属性 -->
	<bean id="car" class="com.zengxiong.spring.beans.Car">
		<constructor-arg value="BOM" index="0"></constructor-arg>
		<constructor-arg value="上海" index="1"></constructor-arg>
		<constructor-arg value="130033" type="double"></constructor-arg>
	</bean>
	<!-- 使用构造i器注入属性值可以指定位置与类型,用来区分构造器 -->
	<bean id="car2" class="com.zengxiong.spring.beans.Car">
		<constructor-arg value="上海大众" type="java.lang.String"></constructor-arg>
		<constructor-arg value="上海" type="java.lang.String"></constructor-arg>
		<constructor-arg value="180" type="int"></constructor-arg>
	</bean>

其他注入方式
字面值进行注入,若包含特殊字符可使用

<!-- 使用value子节点属性注入,第二种特殊字符 -->
		<constructor-arg type="double">
			<value>23543554543</value>
		</constructor-arg>
		
		<constructor-arg index="1">
			<value><![CDATA["上海111"]]></value>
		</constructor-arg>

在 Bean 的配置文件中, 可以通过 元素或 ref 属性为 Bean 的属性或构造器参数指定对 Bean 的引用.
也可以在属性或构造器里包含 Bean 的声明, 这样的 Bean 称为内部 Bean

当 Bean 实例仅仅给一个特定的属性使用时, 可以将其声明为内部 Bean. 内部 Bean 声明直接包含在 或 元素里, 不需要设置任何 id 或 name 属性
内部 Bean 不能使用在任何其他地方

<!-- 可以使用protype中的ref创建bean之间的引用关系 -->
	<bean id="people" class="com.zengxiong.spring.beans.People">
		<property name="name" value="zhangsan"></property>
		<property name="age" value="12"></property>
		<!-- <property name="car" ref="car2"></property> -->
		<!-- 使用内部bean进行配置 -->
		<property name="car">
			<bean class="com.zengxiong.spring.beans.Car">
				<constructor-arg value="fute"></constructor-arg>
				<constructor-arg value="beijing"></constructor-arg>
				<constructor-arg value="2000000"></constructor-arg>
			</bean>
		</property>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值