Java/Spring/ClassPathXmlApplicationContext
Load config file from ClassPath
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 {
}