Java/Spring/ClassPathXmlApplicationContext
Load config file from ClassPath
<source lang="java">
File: context.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="bean"/>
</beans>
File: Main.java import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main {
public static void main(String[] args) throws Exception { ApplicationContext ac = new ClassPathXmlApplicationContext("context.xml"); System.out.println(ac.getBean("simplestBean")); }
} File: Magic.java package bean;
public @interface Magic { }
File: MarkedBean.java package bean;
public class MarkedBean implements ComponentMarker {
@Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("MarkedBean"); sb.append("{}"); return sb.toString(); }
}
File: SimpleBean.java package bean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.ruponent; import org.springframework.util.ObjectUtils; /**
* @author janm */
@Magic class SimpleBean {
private Dependency dependency; @Autowired(required = true) public void setDependency(Dependency dependency) { this.dependency = dependency; } @Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("SimpleBean"); sb.append(ObjectUtils.identityToString(this)); sb.append("{dependency=").append(dependency); sb.append("}"); return sb.toString(); }
} @Component class Dependency {
@Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("Dependency"); sb.append(ObjectUtils.identityToString(this)); sb.append("{}"); return sb.toString(); }
}
File: SimplestBean.java package bean; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.ruponent; /**
* @author janm */
@Component("simplestBean") @Scope("prototype") public class SimplestBean {
@Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("SimplestBean"); sb.append("{}"); return sb.toString(); }
}
File: ComponentMarker.java package bean;
public interface ComponentMarker { }
</source>