import java.security.MessageDigest;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Main {
public static void main(String[] args) throws Exception {
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("context.xml"));
MessageDigestFactoryBean factoryBean = (MessageDigestFactoryBean) factory.getBean("&sha");
String d1 = (String) factory.getBean("sha");
String d2 = (String) factoryBean.getObject();
System.out.println("Equal created? " + (d1.equals(d2)));
}
}
class MessageDigestFactoryBean implements FactoryBean, InitializingBean {
private static final String DEFAULT_ALGORITHM = "MD5";
private String algorithm = DEFAULT_ALGORITHM;
public Object getObject() throws Exception {
return this.algorithm;
}
public Class getObjectType() {
return MessageDigest.class;
}
public boolean isSingleton() {
return true;
}
public void setAlgorithm(String algorithm) {
this.algorithm = algorithm;
}
public void afterPropertiesSet() throws Exception {
this.algorithm += " after setting";
}
}
|