说明
使用AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文。避免使用application.xml进行配置。相比XML配置,更加便捷。
package com.myapp.config;import com.myapp.Entitlement;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@ConfigurationpublicclassAppConfig{@Bean(name="entitlement")public Entitlemententitlement(){
Entitlement ent=newEntitlement();
ent.setName("Entitlement");
ent.setTime(1);return ent;}@Bean(name="entitlement2")public Entitlemententitlement2(){
Entitlement ent=newEntitlement();
ent.setName("Entitlement2");
ent.setTime(2);return ent;}}
package com.myapp;publicclassEntitlement{private String name;privateint time;public StringgetName(){return name;}publicvoidsetName(String name){this.name= name;}publicintgetTime(){return time;}publicvoidsetTime(int time){this.time= time;}}
package com.myapp;import com.myapp.config.AppConfig;import org.springframework.context.annotation.AnnotationConfigApplicationContext;publicclassJavaConfigTest{publicstaticvoidmain(String[] arg){
AnnotationConfigApplicationContext ctx=newAnnotationConfigApplicationContext();
ctx.register(AppConfig.class);
ctx.refresh();
Entitlement ent=(Entitlement)ctx.getBean("entitlement");
System.out.println(ent.getName());
System.out.println(ent.getTime());
Entitlement ent2=(Entitlement)ctx.getBean("entitlement2");
System.out.println(ent2.getName());
System.out.println(ent2.getTime());
ctx.close();}}
输出结果:
Entitlement
1
Entitlement2
2