文档章节

《Spring Recipes》第二章笔记:Declaring Beans from Stat...

LiJIaming
 LiJIaming
发布于 2012/05/16 22:59
字数 256
阅读 87
收藏 0

《Spring Recipes》第二章笔记:Declaring Beans from Static Fields


问题

在配置文件中将类的静态属性声明为bean。

解决方案

在bean元素中使用Spring自带的FieldRetrievingFactoryBean实例化bean或者使用从Spring2.5开始引入的<util:contant>标签。

使用FieldRetrievingFactoryBean

bean:
public abstract class Product {
    public static final Product AAA = new Battery("AAA", 2.5);
    public static final Product CDRW = new Disc("CD-RW", 1.5);
... ...
}

配置文件:
(1)需要将bean的class设置为org.springframework.beans.factory.config.FieldRetrievingFactoryBean。
(2)设置staticField属性为静态属性的完全限定名。
<beans ...>
  <bean id="aaa" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
    <property name="staticField">
      <value>com.apress.springrecipes.shop.Product.AAA</value>
    </property>
  </bean>

  <bean id="cdrw" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
    <property name="staticField">
      <value>com.apress.springrecipes.shop.Product.CDRW</value>
    </property>
   </bean>
</beans>


使用<util:contant>标签

配置文件:
(1)引入 util namespace。
(2)设置<util:constant>标签的static-field属性为静态属性的完全限定名。
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-3.0.xsd">
    
    <util:constant id="aaa"
      static-field="com.apress.springrecipes.shop.Product.AAA" />
    
    <util:constant id="cdrw"
      static-field="com.apress.springrecipes.shop.Product.CDRW" />
</beans>




© 著作权归作者所有

LiJIaming
粉丝 22
博文 58
码字总数 25865
作品 0
深圳
程序员
私信 提问
《Spring Recipes》第二章笔记:Declaring Beans from Obje...

《Spring Recipes》第二章笔记:Declaring Beans from Object Properties 问题 在配置文件中将一个对象的属性声明为bean。 解决方案 使用Spring自带的PropertyPathFactoryBean工厂bean或者使...

LiJIaming
2012/05/17
60
0
《Spring Recipes》第二章笔记:event-based communication

《Spring Recipes》第二章笔记:event-based communication 问题 在bean之间添加事件驱动的通信。 解决方案 1、事件类需要继承ApplicationEvent。实现构造函数,在事件类中添加用于传递信息的...

LiJIaming
2012/05/19
138
0
《Spring Recipes》第四章笔记3:Refreshing Beans from Sc...

《Spring Recipes》第四章笔记3:Refreshing Beans from Scripts 问题 脚本经常刷新,需要Spring容器自动探测变化和刷新。 解决方案 使用<lang>元素的refresh-check-delay属性,Spring容器可...

LiJIaming
2012/05/25
77
0
《Spring Recipes》第四章笔记2:Injecting Spring Beans i...

《Spring Recipes》第四章笔记2:Injecting Spring Beans into Scripts 问题 需要将Spring中的bean注入到脚本中。 解决方案 使用Setter注入的方式将bean注入到脚本中。 例:假设接口Interes...

LiJIaming
2012/05/25
103
0
《Spring Recipes》第三章笔记2:Declaring Aspects

《Spring Recipes》第三章笔记2:Declaring Aspects Spring容器支持的AspectJ注解:@Aspect,@Before,@After,@AfterReturning,@AfterThrowing,@Around。 注意:切面必须让Spring容器管理...

LiJIaming
2012/05/20
219
0

没有更多内容

加载失败,请刷新页面

加载更多

移动深度学习:人工智能的深水区

人工智能技术经历6年的快速发展,重新定义了很多行业的用户体验,而这仅是开始。 随着5G商用大规模落地,以及智能手机硬件性能越来越强、AIoT设备的快速普及,基于云-边缘-端算法和算力结构的...

博文视点Bv
17分钟前
2
0
vim 分屏 操作

$vim -On file file2 #大写O垂直分屏打开文件 $vim -on file file2 #小写水平打开 # n 表示分屏数,直接n等于文件个数 如果n小于文件,按顺序打开前面的n个,如果大于,打开空编辑页面 分屏快...

突突突酱
19分钟前
2
0
MySQL/Mariadb设置中文字符集(linux)

编辑/etc/my.cnf,添加以下设置 [mysql]default-character-set=utf8[mysqld]character_set_server=utf8[mysqld.safe]default-character-set=utf8[client]default-chara...

编程老陆
22分钟前
2
0
关于linux常用的挂载命令

挂载:就把一块磁盘(可以是光盘,U盘)绑定到一个空目录下面 一般情况下会挂载到mnt目录下面 挂载光盘(把光盘挂载到/mnt/cdrom这个目录中) mount -t iso9660 /dev/cdrom /mnt/cdrom 退出当前目录...

chenhongjiang
23分钟前
3
0
如何分享brain内容外部共享?几个需要知道的TheBrain问答

TheBrain(点击下载)是一款与众不同的思维导图软件,其所有信息通过一个又一个的节点进行联系,最终形成一个杂而不乱的网状结构。从头开始设计,让您捕获您的想法和信息在一个网络的联想,匹...

mnrssj
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部