Spring的学习(一)IOC,xml方式创建bean


获取Bean

ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
User user = context.getBean("user",User.class);

一.基于xml方式:

<!--配置User对象的创建 -->
<bean id="user" class="com.abc.User"></bean>
  • (1).在Spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
  • (2).在bean标签有很多属性,介绍常用的属性

id:唯一标识
class:类全路径(包类路径)

  • (3).创建对象时候,默认也是执行无参数构造方法

二.基于xml方式注入属性

(1)DI:依赖注入,就是注入属性

  • 第一种注入方式:set方法
<bean id="user" class="com.abc.User">
<!-- name:属性名 value:属性值-->
  <property name="userName" value="abc" ></property>
  <property name="passWord" value="123" ></property>
</bean>
  • 第二种注入方式:有参构造
<bean id="user" class="com.abc.User">
  <constructor-arg name="username" value="abc"></constructor-arg>
  <constructor-arg name="passWord" value="123"></constructor-arg>
</bean>
  • 第三种 p名称空间注入 (使用p名称空间注入,可以简化基于xml配置方式)

第一步 添加p名称空间到配置文件

xmls:p="http://www.springframework.org/schema/p"

第二步 进行属性注入 在bean标签里进行操作

<!--set方式-->
<bean id="user" class="com.abc.User" p:username="abc" p:password="123">
</bean>

(2)注入字面量
null

 <property name="passWord"  > <null/> </property>

属性含特殊符号

<!--1.转义 如<>转义&lt;&gt;-->
 <property name="passWord" value="&lt&lt南京&gt&gt" > 
 </property>
 <!--2.把特殊符号内容写进CDATA;-->
 <property name="passWord"  > 
 <value><![CDATA[<<南京>>]]></value>
 </property>

(3)注入对象

<bean id="userDao" class="com.abc.dao.UserDao">
</bean>
<bean id="userService" class="com.abc.service.UserService">
   <!-- name:属性名称 ref:bean标签的id -->
   <property name="userDao" ref="userDao" > </property>
</bean>

内部bean

<bean id="userDao" class="com.abc.dao.UserDao">
</bean>
<bean id="userService" class="com.abc.service.UserService">
  
   <property name="userDao" > 
      <bean id="userDao" class="com.abc.dao.UserDao">
      </bean>
   </property>
</bean>

级联赋值:

<bean id="user" class="com.abc.entry.User">
 <property name="shcool" ref="shcool" > </property>
  <property name="shcool.name" value="清华大学" > </property>
</bean>

<bean id="shcool" class="com.abc.entry.Shcool">
</bean>

注入集合类型

<bean id="user" class="com.abc.entry.User">
<!--             array的注入                  -->
 <property name="courses"  >
   <array>
     <value>java课程</value>
     <value>python课程</value>
  </array>
 </property>
 <!--             list的注入                  -->
 <property name="list"  >
   <list>
     <value>java课程</value>
     <value>python课程</value>
   </list>
 </property>
 <!--             map的注入                  -->
 <property name="maps"  >
   <map>
     <entry key="java" value="java课程"></entry>
  </map>
 </property>
  <!--             set的注入                  -->
 <property name="maps"  >
   <set>
      <value>java课程</value>
      <value>python课程</value>
  </set>
 </property>
</bean>

引入集合

 <property name="list"  >
   <list>
     <ref bean="user1"></ref>
     <ref bean="user2"></ref>
   </list>
 </property>

<bean id="user1" class="com.abc.entry.User">
  <property name="userName" value="abc"></property>
</bean>

<bean id="user2" class="com.abc.entry.User">
  <property name="userName" value="张三"></property>
</bean>

util命名空间把集合注入部分提取出来

xmls:util="http://www.springframework.org/schema/util"
<util:list id="bookList">
 <value>好书</value>
 <value>天书</value>
</util:list>

<bean id="book" class="com.abc.entry.Book">
  <property name="list" ref="bookList"></property>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值