Spring 之 applicationContext.xml  配置

  默认实例化(无参构造)

 //被实例化对象
package cn.ibbidream.Bean; public class Bean1 {
//3.1.1 默认无参构造 public Bean1() {
System.out.println("无参构造启动了");
}
} //配置文件
<bean id="bean1" class="cn.ibbidream.Bean.Bean1">
<!--
默认无参构造器:
要求:必须有一个无参的构造器
-->
</bean> //测试代码
public void bean1(){
//加载配置文件
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //初始化对象
Bean1 bean1 = (Bean1) applicationContext.getBean("bean1");
}
静态工厂实例化(不常用)
 //被实例化对象
package cn.ibbidream.web; public class bean2 {
public bean2() {
System.out.println("Bean2 初始化");
}
} //创建静态工厂类
package cn.ibbidream.web; public class BeanFactory {
public static bean2 getBean2(){
System.out.println("静态方法执行了");
return new bean2();
}
} //xml 配置文件
<!-- 静态工厂方法实例化bean:
factory-method:通过该静态工厂中的方法创建bean
-->
<bean id="bean2" class="cn.ibbidream.web.BeanFactory" factory-method="getBean2"></bean> //测试代码
@Test
public void bean2(){
//加载配置文件
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //初始化对象
bean2 bean2 = (bean2) applicationContext.getBean("bean2");
  }
属性注入值-无参构造注入
 <bean id="serviceHello" class="cn.ibbidream.quickstart.impl.HelloServiceimpl">
<!--
property:给对象注入属性
name:属性的名称
value:属性的值
-->
<property name="name" value="张三"></property>
</bean>
属性注入值-有参构造注入
   <!-- 有参构造注入属性 -->
<bean id="car1" class="cn.ibbidream.Test.Car">
<!--
index:通过索引号注入,表示注入的是第几个属性
type:通过属性的类型注入
name:通过属性名称注入
value:属性的值
--> <constructor-arg index="0" value="比亚迪 秦100"></constructor-arg>
<constructor-arg index="1" value="220000"></constructor-arg>
  </bean>
属性注入值-set注入
   <!--
set方法注入普通属性
property:通过set方法注入属性
-->
<bean id="car2" class="cn.ibbidream.Test.Car2">
<!--
name:属性的名称,需要和set方法上的名称对应而不是成员变量的名称
value:属性值
-->
<property name="name" value="奥迪 A4"></property>
<property name="price" value="180000"></property>
  </bean>
属性注入值-set注入对象
     <!--
set方法注入一个对象
-->
<bean id="user1" class="cn.ibbidream.Test.User1">
<!--
name:属性名称
value:属性值
ref:引入一个bean作为属性进行注入,可以是id,也可以是name
-->
<property name="name" value="张三"></property>
<property name="car2" ref="car2"></property>
</bean>
属性注入值-p标签注入
 <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<!-- 注意一定要引入P标签 --> xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--
使用p名称空间进行属性的注入
p:name:name属性的值
p:price:price属性的值
-->
<bean id="car3" class="cn.ibbidream.Test.Car2" p:name="奔驰" p:price="800000"></bean>
<!--
使用p名称空间进行属性的注入
p:name:name属性的值
p:car2-ref:car2属性的引用
-->
<bean id="car4" class="cn.ibbidream.Test.User1" p:name="张三" p:car2-ref="car2"></bean> </beans>

最新文章

  1. iOS9和Xcode7
  2. Servlet从本地文件中读取图片,并显示在页面中
  3. UITableView中Cell和section的插入与删除
  4. 布局文件中fill_parent、match_parent和wrap_content有什么区别?
  5. python 数据加密以及生成token和token验证
  6. ubuntu1604安装体验
  7. Python OpenCV —— Border
  8. 中断——中断描述符表的定义和初始化(一) (基于3.16-rc4)
  9. AMD和CMD的区别
  10. POJ 2472 106 miles to Chicago(Dijstra变形——史上最坑的最长路问题)
  11. Leetcode题解(十二)
  12. Lintcode212 Space Replacement solution 题解
  13. 基于RNN的音频降噪算法 (附完整C代码)
  14. VC++ 6.0中添加库文件和头文件
  15. windows 10 更新失败及应用商店重装问题解决记录
  16. SVN四部曲之SVN设置详解深入
  17. ElasticSearch排序Java api简单Demo
  18. 多网卡的7种bond模式原理 For Linux
  19. python 分布式进程体验
  20. MATLAB(3)——GUI界面设计入门

热门文章

  1. oc54--auatorelease应用场景
  2. B1202 [HNOI2005]狡猾的商人 并查集
  3. Java插入中文到数据库中文变成问号解决
  4. go 函数高级运用
  5. prim解决最小生成树问题
  6. Elasticsearch之curl删除索引库
  7. 折纸---珠穆朗玛问题----简单for 循环
  8. C# 获取所有网卡信息
  9. Python之function
  10. ANN:ML方法与概率图模型