博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring4.0MVC学习资料,ApplicationContext中的方法具体解释(三)
阅读量:4658 次
发布时间:2019-06-09

本文共 4849 字,大约阅读时间需要 16 分钟。

做为java开源的一部分,spring框架一直排在老大的位置。Spring4.0 是 Spring 推出的一个重大版本号升级,进一步加强了 Spring 作为 Java 领域第一开源平台的地位。Spring4.0 引入了众多 Java 开发人员期盼的新特性,如泛型依赖注入、SpEL、校验及格式化框架、Rest风格的 WEB 编程模型等。这些新功能有用性强、易用性高,可大幅减少 JavaEE 开发的难度,同一时候有效提升应用开发的优雅性。为了方便开发,Spring的ApplicationContext类,给我们提供了非常多有用的方法,我在这里进行一下解说。

看配置代码(applicationContext2.xml):

herman
20
herman
在看測试代码:
package com.herman.ss.test;import java.util.Map;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.stereotype.Component;import com.herman.ss.pojo.House;import com.herman.ss.pojo.Person;public class Test2 {		/**	 * @see 使用getBeansOfType获取bean对象集合	 * @author Herman.Xiong	 * @date 2014年8月6日15:38:10	 */	public static void test0(){		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml");		Map
map=ctx.getBeansOfType(Person.class); for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } } /** * @see 使用containsBean推断bean对象是否存在 * @author Herman.Xiong * @date 2014年8月6日15:40:18 */ public static void test1(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); System.out.println(ctx.containsBean("person0")); } /** * @see 使用getBeanDefinitionCount统计定义bean对象的数量 * @author Herman.Xiong * @date 2014年8月6日15:42:34 */ public static void test2(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); System.out.println(ctx.getBeanDefinitionCount()); } /** * @see 使用getBeanDefinitionNames获取定义的bean的名字 * @author Herman.Xiong * @date 2014年8月6日15:45:50 */ public static void test3(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); String beanName []= ctx.getBeanDefinitionNames(); for (int i = 0; i < beanName.length; i++) { System.out.println(beanName[i]); } } /** * @see 依据bean名字获取bean的别名 * @author Herman.Xiong * @date 2014年8月6日16:20:54 */ public static void test4(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); String[] aliases=ctx.getAliases("a"); for (int i = 0; i < aliases.length; i++) { System.out.println(aliases[i]); } //person0,b,e,c,d /** * 由于bean的名字由两部分组成: * (1) 默认名字。当定义了bean的id属性时,默认名字为id属性的值; * 没有定义id时,取name属性的第一个值;id和name均没有定义时,取类名。 * (2) 别名,除默认名字以外的其它名字。 */ } /** * @see isPrototype,isSingleton推断是否为多例,单例,原型 * @author Herman.Xiong * @date 2014年8月6日16:25:56 */ public static void test5(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); System.out.println(ctx.isPrototype("person0")); System.out.println(ctx.isSingleton("person0")); System.out.println(ctx.isTypeMatch("person0", House.class)); } /** * @see 使用isTypeMatch方法推断bean对象是否为指定类型 */ public static void test6(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); System.out.println(ctx.isTypeMatch("person0", House.class)); } /** * @see 其它測试 */ public static void test7(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext2.xml"); System.out.println(ctx.getApplicationName());//模型的应用的名字 System.out.println(ctx.getDisplayName()); System.out.println(ctx.getStartupDate()); System.out.println(ctx.findAnnotationOnBean("person0", Component.class));//返回相应的注解实例(參数指定了Bean的配置名称和须要返回的注解的类型) System.out.println(ctx.getBeanNamesForAnnotation(Component.class));//返回全部使用了相应注解annotationType的Bean /** * ConfigurableBeanFactory 这个接口定义了设置父容器(ParentBeanFactory),设置类装载器, 设置属性编辑器(PropertyEditorRegistrar)等一系列功能,增强了IoC容器的可定制性 AutowireCapableBeanFactory 定义了一些自己主动装配Bean的方法 SingletonBeanRegistry 这个接口没有继承BeanFactory,它主要定义了在执行期间向容器注冊单例模式Bean的方法 BeanDefinitionRegistry 这个接口没有继承BeanFactory,它主要定义了向容器中注冊BeanDefinition对象的方法 在Spring配置文件里,每个
节点元素在Spring容器中都是由一个BeanDefinition对象描写叙述的) */ } public static void main(String[] args) { //test0(); //test1(); //test2(); //test3(); //test4(); //test5(); //test6(); test7(); }}
自己执行測试一把,是不是感觉非常爽。

欢迎大家关注我的个人博客!!!!
如有不懂,疑问或者欠妥的地方,请加QQ群:135430763   进行反馈,共同学习!

转载于:https://www.cnblogs.com/hrhguanli/p/4554406.html

你可能感兴趣的文章
补码与符号位取反
查看>>
生日。金鼎轩吃饭;亿旺中影看《后会无期》。
查看>>
[蓝桥杯] 排它平方数
查看>>
jmeter学习记录--03--jmeter负载与监听
查看>>
Altium Designer 复制和粘贴功能
查看>>
zynq基础-->LINUX 设备树
查看>>
C++友元函数、友元类
查看>>
Linux基本操作指令
查看>>
用TypeScript开发Vue——如何通过vue实例化对象访问实际ViewModel对象
查看>>
图解二叉树遍历(递归调用)
查看>>
IIS 应用程序池 已停用
查看>>
==还款-代偿(csv循环自动代偿)
查看>>
BZOJ 2402 陶陶的难题II (01分数规划+树剖+线段树+凸包+二分)
查看>>
升级openssh踩得坑
查看>>
【openCV】openCV2.4.8在vs2010旗舰版中的配置
查看>>
继承小结
查看>>
【阿里笔试2】给定一组只包含数字的字符串,请恢复到有效的非私有网段地址组合...
查看>>
XJad反编译软件
查看>>
Maven安装jar文件到本地仓库
查看>>
部署基于JDK的webservice服务类
查看>>