Spring util-namespace下标签相关操作
java代码
package com.stono.sprtest; import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class AppBean3 {
@SuppressWarnings("resource")
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("appbeans3.xml");
List<?> list = (List<?>) context.getBean("instruments");
for (Object object : list) {
System.out.println(object);
}
Elvis elvis = (Elvis) context.getBean("elvis");
System.out.println(elvis.getName()); // #{'abc'[0]}
System.out.println(elvis.getName2()); // #{map['b']}
@SuppressWarnings("unchecked")
Map<String, ?> map = (Map<String, ?>) context.getBean("map");
System.out.println(map.get("c"));
System.out.println(map.get("d")); // 从属性文件中读取内容;
System.out.println(map.get("e")); // 打出了全部
System.out.println(map.get("e1"));
Object x = map.get("f"); // x对象为properties对象;
System.out.println(x); // 打出了全部
System.out.println(map.get("f1"));
Set<?> set = (Set<?>) context.getBean("set");
System.out.println(set);
Object prop = context.getBean("prop"); // 获取属性文件对象
System.out.println(prop); // {stono.amber=Amber, stono.minstrel=Minstrel}
System.out.println(map.get("g"));// #{set.?[age eq 10]}表达式
System.out.println(map.get("h"));// #{set.^[age gt 11]}表达式
System.out.println(map.get("i"));// #{set.$[age gt 11]}表达式
Object x2 = map.get("j");// #{ .![]}返回ArrayList
System.out.println(x2);// #{set.![age]}表达式 result:[10, 15, 20, 25, 25];即便只有一个元素,也是返回ArrayList
System.out.println(map.get("k"));// #{set.?[age gt 10]}表达式
Object list2 = context.getBean("list2");
System.out.println(list2);
System.out.println(context.getBean("pi"));// util:constant标签
Object ppath = context.getBean("ppath"); // util:property-path标签
System.out.println(ppath);
System.out.println(map.get(Math.PI)); //map中key-ref的使用;
}
}
xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" 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-4.1.xsd">
<util:list id="instruments">
<bean class="com.stono.sprtest.Cymbal"></bean>
<bean class="com.stono.sprtest.Harmonica"></bean>
<bean class="com.stono.sprtest.Saxophone"></bean>
</util:list>
<bean id="elvis" class="com.stono.sprtest.Elvis">
<property name="instrument" value="#{instruments[0]}"></property>
<property name="name" value="#{'abc'[0]}"></property>
<property name="name2" value="#{map['b']}"></property>
</bean>
<util:map id="map">
<entry key="a" value="a"></entry>
<entry>
<key>
<value>b</value>
</key>
<value>b</value>
</entry>
<entry key="c" value-ref="instruments"></entry>
<entry key="d" value="#{prop['stono.amber']}"></entry>
<entry key="e" value="#{systemEnvironment }"></entry>
<entry key="e1" value="#{systemEnvironment['USERPROFILE'] }"></entry>
<entry key="f" value="#{systemProperties}"></entry>
<entry key="f1" value="#{systemProperties['os.name']}"></entry>
<entry key="g" value="#{set.?[age eq 10]}"></entry>
<entry key="h" value="#{set.^[age gt 11]}"></entry>
<entry key="i" value="#{set.$[age gt 11]}"></entry>
<entry key="j" value="#{set.![age]}"></entry>
<entry key="k" value="#{set.?[age gt 10]}"></entry>
<entry key-ref="pi" value="PI"></entry>
</util:map>
<util:set id="set">
<bean class="com.stono.sprtest.Duke" p:age="10"></bean>
<bean class="com.stono.sprtest.Duke" p:age="15"></bean>
<bean class="com.stono.sprtest.Duke" p:age="20"></bean>
<bean class="com.stono.sprtest.Duke" p:age="25"></bean>
<bean class="com.stono.sprtest.Duke" p:age="25"></bean>
</util:set>
<util:properties id="prop" location="classpath:settings.properties">
</util:properties>
<util:list id="list2">
<bean class="java.lang.Integer">
<constructor-arg>
<value>10</value>
</constructor-arg>
</bean>
<bean class="java.lang.String">
<constructor-arg>
<value>typography</value>
</constructor-arg>
</bean>
<bean class="java.util.Calendar" factory-method="getInstance"></bean>
</util:list>
<util:constant id="pi" static-field="java.lang.Math.PI"/>
<bean id="duke" class="com.stono.sprtest.Duke" p:age="80"></bean>
<util:property-path id="ppath" path="duke.age"/>
</beans>
Spring util-namespace下标签相关操作的更多相关文章
- Linux下mysql相关操作
Linux下mysql相关操作 1.创建MySQL mysql -u root -p create user 'username'@'%' identified by 'password'; %可以选 ...
- Linux下 svn相关操作
Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...
- linux下进程相关操作
一.定义和理解 狭义定义:进程是正在运行的程序的实例. 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动. 进程的概念主要有两点: 第一,进程是一个实体.每一个进程都有它自己的 ...
- Linux下tomcat相关操作
tomcat安装: 直接到官网下载tar包解压即可. tomcat相关操作: 首先,进入Tomcat下的bin目录,例如:cd /usr/tomcat/bin 启动Tomcat:./startup.s ...
- git tag — 标签相关操作
标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ Git tag # 在控制台打印出当前仓库的所有标签$ git tag -l 'v0.1.*' # 搜索符合模式的标签 打标签 gi ...
- git-tag 标签相关操作
标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签 打标签 gi ...
- 【转】linux下nginx相关操作
参考文章 <nginx启动,重启,关闭命令> 停止操作 停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的 步骤1:查询nginx主进程号 ps -ef | ...
- cenos7 下数据库相关操作
1.Linux Centos7下如何确认MySQL服务已经启动 https://www.cnblogs.com/qianzf/p/7082484.html 2.CentOS 7上安装MySQL并配置远 ...
- linux下终止相关操作
Ctrl c 中止当前正在执行的程序. Ctrl d 相当于exit命令,退出当前会话. Ctrl z 将当前运行的程序放到后台运行.与运行时加&类似.
随机推荐
- 2016"百度之星" - 资格赛(Astar Round1) Problem C
字典树. 插入的时候update一下节点出现的次数. delete的时候,先把前缀之后的全删了.然后看前缀最后一个节点出现了几次,然后前缀上每个节点的次数都减去这个次数. 前缀从上到下再检查一遍,如果 ...
- Win7下 IIS+PHP(ZendLoader)+MySQL
这里使用的是傻瓜式安装方式 下载php-5.3.18-nts-Win32-VC9-x86.msi,Win7下可执行文件.(下载地址 http://pan.baidu.com/s/1qvJCA) 执行到 ...
- 将一个字典内的内value转换为集合:返回一个数组,此数组中包含输入字典的键值对中的数组的所有元素(为NSArray添加category)
- (NSArray *)testa:(NSDictionary *)dic { NSMutableArray *arr_M = [NSMutableArray array]; // 1.遍历每一个元 ...
- html5 canvas 五子棋游戏
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 有趣的keil MDK细节(转)
源:有趣的keil MDK细节 1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed ch ...
- tableView滑动到底部
- (void)scrollToBottom { NSInteger sectionCount = [self.dataSource numberOfSectionsInTableView:self] ...
- FZU 2112 Tickets
这个问题可以转变一下,先要知道有几个连通块,连通块之间肯定需要添加一条边, 还需要知道每个连通块内部需要添加几条边,这个问题等价于求一张图至少需要几笔画成,这个问题的答案是度为奇数的点的个数/2 #i ...
- [bzoj1195] [hnoi2006] 最短母串
本题是一个经典的状压dp问题,在紫书中有着加强版的例题. 本题的难度主要体现在:如何输出字符串字典序最小. 为了解决这个问题,我们有两种常用方案: 1) 我们可以采用bfs输出路径的方法,使用+1来输 ...
- 分布式数据库Google Spanner原理分析
Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database) .Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的 ...
- github的SSH配置如下
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 一 . 设置Git的user name和email: $ git ...