Spring 属性输入和实例化操作_总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 属性输入和实例化操作_总结相关的知识,希望对你有一定的参考价值。
Spring 之 applicationContext.xml 配置
默认实例化(无参构造)
1 //被实例化对象 2 package cn.ibbidream.Bean; 3 4 public class Bean1 { 5 //3.1.1 默认无参构造 6 7 public Bean1() { 8 System.out.println("无参构造启动了"); 9 } 10 } 11 12 //配置文件 13 <bean id="bean1" class="cn.ibbidream.Bean.Bean1"> 14 <!-- 15 默认无参构造器: 16 要求:必须有一个无参的构造器 17 --> 18 </bean> 19 20 //测试代码 21 public void bean1(){ 22 //加载配置文件 23 ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 24 25 //初始化对象 26 Bean1 bean1 = (Bean1) applicationContext.getBean("bean1"); 27 }
静态工厂实例化(不常用)
1 //被实例化对象 2 package cn.ibbidream.web; 3 4 public class bean2 { 5 public bean2() { 6 System.out.println("Bean2 初始化"); 7 } 8 } 9 10 //创建静态工厂类 11 package cn.ibbidream.web; 12 13 public class BeanFactory { 14 public static bean2 getBean2(){ 15 System.out.println("静态方法执行了"); 16 return new bean2(); 17 } 18 } 19 20 //xml 配置文件 21 <!-- 静态工厂方法实例化bean: 22 factory-method:通过该静态工厂中的方法创建bean 23 --> 24 <bean id="bean2" class="cn.ibbidream.web.BeanFactory" factory-method="getBean2"></bean> 25 26 //测试代码 27 @Test 28 public void bean2(){ 29 //加载配置文件 30 ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 31 32 //初始化对象 33 bean2 bean2 = (bean2) applicationContext.getBean("bean2"); 34 }
属性注入值-无参构造注入
1 <bean id="serviceHello" class="cn.ibbidream.quickstart.impl.HelloServiceimpl"> 2 <!-- 3 property:给对象注入属性 4 name:属性的名称 5 value:属性的值 6 --> 7 <property name="name" value="张三"></property> 8 </bean>
属性注入值-有参构造注入
1 <!-- 有参构造注入属性 --> 2 <bean id="car1" class="cn.ibbidream.Test.Car"> 3 <!-- 4 index:通过索引号注入,表示注入的是第几个属性 5 type:通过属性的类型注入 6 name:通过属性名称注入 7 value:属性的值 8 --> 9 10 <constructor-arg index="0" value="比亚迪 秦100"></constructor-arg> 11 <constructor-arg index="1" value="220000"></constructor-arg> 12 </bean>
属性注入值-set注入
1 <!-- 2 set方法注入普通属性 3 property:通过set方法注入属性 4 --> 5 <bean id="car2" class="cn.ibbidream.Test.Car2"> 6 <!-- 7 name:属性的名称,需要和set方法上的名称对应而不是成员变量的名称 8 value:属性值 9 --> 10 <property name="name" value="奥迪 A4"></property> 11 <property name="price" value="180000"></property> 12 </bean>
属性注入值-set注入对象
1 <!-- 2 set方法注入一个对象 3 --> 4 <bean id="user1" class="cn.ibbidream.Test.User1"> 5 <!-- 6 name:属性名称 7 value:属性值 8 ref:引入一个bean作为属性进行注入,可以是id,也可以是name 9 --> 10 <property name="name" value="张三"></property> 11 <property name="car2" ref="car2"></property> 12 </bean>
属性注入值-p标签注入
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 <!-- 注意一定要引入P标签 --> xmlns:p="http://www.springframework.org/schema/p" 4 xsi:schemaLocation=" 5 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 7 <!-- 8 使用p名称空间进行属性的注入 9 p:name:name属性的值 10 p:price:price属性的值 11 --> 12 <bean id="car3" class="cn.ibbidream.Test.Car2" p:name="奔驰" p:price="800000"></bean> 13 <!-- 14 使用p名称空间进行属性的注入 15 p:name:name属性的值 16 p:car2-ref:car2属性的引用 17 --> 18 <bean id="car4" class="cn.ibbidream.Test.User1" p:name="张三" p:car2-ref="car2"></bean> 19 20 </beans>
以上是关于Spring 属性输入和实例化操作_总结的主要内容,如果未能解决你的问题,请参考以下文章