刚开始接触Spring,找来一些教程,相比于文字还是比较喜欢视频,虽然大多数视频讲的都太烦杂无味,还是比较喜欢某客的系列。
并不善于总结,只是记录下来基本的流程。
这里用的是setter注入
1.首先编写IHelloMessage接口:里面定义一个方法供子类重写,方法实现返回不同国家语言的字符串。
package com.sun.spring;
public interface IHelloMwssage {
public String sayHello();
}
2.接口的两个实现类
package com.sun.spring;
public class HelloChina implements IHelloMwssage {
@Override
public String sayHello() {
return "你好,中国!";
}
}
package com.sun.spring;
public class HelloWorld implements IHelloMwssage {
@Override
public String sayHello() {
return "Hello World!";
}
}
3.创建Person类,类中定义接口,并实现get/set方法,并定义say方法
package com.sun.spring;
public class Person {
private IHelloMwssage ihellomessage;
public IHelloMwssage getIhellomessage() {
return ihellomessage;
}
public void setIhellomessage(IHelloMwssage ihellomessage) {
this.ihellomessage = ihellomessage;
}
public String say(){
return this.ihellomessage.sayHello();
}
}
4.Main类用来测试
package com.sun.spring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext(
"hello.xml");
Person person=(Person) factory.getBean("person");
String s=person.say();
System.out.println(s);
}
}
5.配置文件,也是spring核心部分
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloWorld" class="com.sun.spring.HelloWorld"></bean>
<bean id="helloChina" class="com.sun.spring.HelloChina"></bean>
<bean id="person" class="com.sun.spring.Person">
<property name="ihellomessage" ref="helloWorld"></property>
</bean>
</beans>
6.输出:
上面看到我们配置中用的是HelloWorld的对象,所以输出:
Hello World!
7.如果改成构造器注入
Person1类
package com.sun.spring;
public class Person1 {
private IHelloMwssage ihellomessage;
public Person1(IHelloMwssage ihellomessage) {
this.ihellomessage = ihellomessage;
}
public String say(){
return this.ihellomessage.sayHello();
}
}
在Main类中相应代码为
Person1 person1=(Person1) factory.getBean("person1");
String s1=person1.say();
System.out.println(s1);
相应配置为
<bean id="person1" class="com.sun.spring.Person1">
<constructor-arg ref="helloChina">
</constructor-arg>
</bean>
输出:
你好,中国!