前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速学习-给bean的属性赋值

快速学习-给bean的属性赋值

作者头像
cwl_java
发布2020-02-12 12:50:25
2.3K0
发布2020-02-12 12:50:25
举报
文章被收录于专栏:cwl_Javacwl_Java

IOC容器和Bean的配置

2.3 给bean的属性赋值

2.3.1 依赖注入的方式

  1. 通过bean的setXxx()方法赋值 Hello World中使用的就是这种方式
在这里插入图片描述
在这里插入图片描述
  1. 通过bean的构造器赋值
  2. Spring自动匹配合适的构造器
代码语言:javascript
复制
     <bean id="book" class="com.atguigu.spring.bean.Book" >
           <constructor-arg value= "10010"/>
           <constructor-arg value= "Book01"/>
           <constructor-arg value= "Author01"/>
           <constructor-arg value= "20.2"/>
     </bean >
  1. 通过索引值指定参数位置
代码语言:javascript
复制
     <bean id="book" class="com.atguigu.spring.bean.Book" >
           <constructor-arg value= "10010" index ="0"/>
           <constructor-arg value= "Book01" index ="1"/>
           <constructor-arg value= "Author01" index ="2"/>
           <constructor-arg value= "20.2" index ="3"/>
     </bean >
  1. 通过类型区分重载的构造器
代码语言:javascript
复制
<bean id="book" class="com.atguigu.spring.bean.Book" >
      <constructor-arg value= "10010" index ="0" type="java.lang.Integer" />
      <constructor-arg value= "Book01" index ="1" type="java.lang.String" />
      <constructor-arg value= "Author01" index ="2" type="java.lang.String" />
      <constructor-arg value= "20.2" index ="3" type="java.lang.Double" />
</bean >

2.3.2 p名称空间

为了简化XML文件的配置,越来越多的XML文件采用属性而非子元素配置信息。Spring从2.5版本开始引入了一个新的p命名空间,可以通过元素属性的方式配置Bean 的属性。使用p命名空间后,基于XML的配置方式将进一步简化。

代码语言:javascript
复制
<bean 
	id="studentSuper" 
	class="com.atguigu.helloworld.bean.Student"
	p:studentId="2002" p:stuName="Jerry2016" p:age="18" />

2.3.3 可以使用的值

  1. 字面量
  2. 可以使用字符串表示的值,可以通过value属性或value子节点的方式指定
  3. 基本数据类型及其封装类、String等类型都可以采取字面值注入的方式
  4. 若字面值中包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来
  5. null值
代码语言:javascript
复制
     <bean class="com.atguigu.spring.bean.Book" id="bookNull" >
           <property name= "bookId" value ="2000"/>
           <property name= "bookName">
               <null/>
           </property>
           <property name= "author" value ="nullAuthor"/>
           <property name= "price" value ="50"/>
     </bean >
  1. 给bean的级联属性赋值
代码语言:javascript
复制
     <bean id="action" class="com.atguigu.spring.ref.Action">
          <property name="service" ref="service"/>
          <!-- 设置级联属性(了解) -->
          <property name="service.dao.dataSource" value="DBCP"/>
     </bean>
  1. 外部已声明的bean
代码语言:javascript
复制
     <bean id="shop" class="com.atguigu.spring.bean.Shop" >
           <property name= "book" ref ="book"/>
     </bean >
  1. 内部bean 当bean实例仅仅给一个特定的属性使用时,可以将其声明为内部bean。内部bean声明直接包含在或元素里,不需要设置任何id或name属性内部bean不能使用在任何其他地方
代码语言:javascript
复制
<bean id="shop2" class="com.atguigu.spring.bean.Shop" >
    <property name= "book">
        <bean class= "com.atguigu.spring.bean.Book" >
           <property name= "bookId" value ="1000"/>
           <property name= "bookName" value="innerBook" />
           <property name= "author" value="innerAuthor" />
           <property name= "price" value ="50"/>
        </bean>
    </property>
</bean >
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IOC容器和Bean的配置
    • 2.3 给bean的属性赋值
      • 2.3.1 依赖注入的方式
      • 2.3.2 p名称空间
      • 2.3.3 可以使用的值
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档