刚刚在了一下关于spring的一些介绍,感觉自己并没有那么熟悉,什么aop什么iop的听都没有听过。我现在就在想控制翻转是什么意思,DI什么意思完全没有设么概念,虽然有图片作为参考,但是还是不是很懂,只是感觉spring提供了就是一种web开发的方法(不知道正不正确),说实话,什么一站式服务确实不怎么理解。spring提供了很多的模块,当你想要用到什么方法的时候,你就会载入这个模块,可以避免产生过多的无用代码。保持项目的干净性。还有就是spring代码的低耦合性,以前还不是理解代码的耦合性是什么意思,现在算是有了一定的理解,低耦合性的意思就是代码相互的关联不够高,这样做的好处就是可以不用牵一发而动全身。这样做就可以提高代码的可维护性。还有spring的高度开放的态度可以容纳其他的的框架。然后就是关于spring的具体的业务逻辑可能只有在以后的学习中慢慢的体会到spring的逻辑关系。到时候再来完善对spring的理解。
要用到spring先将他的jar文件构建路径。然后创建一个接口,在创建三个实体类,创建一个主方法和配置文件。
首先创建一个接口:
IHelloMassage.java
package com.hello.spring;
public interface IhelloMassage {
public String sayHello();
}
在创建三个实体类,一个是让一个人说中文,一个是让一个人说英文。一个就是人这个实体类。
- HelloWorld.java(说英文)
package com.hello.spring;
public class HelloWorld implements IhelloMassage {
@Override
public String sayHello() {
return "hello world";
}
}
- HelloChina.java(说中文)
package com.hello.spring;
public class HelloChina implements IhelloMassage {
@Override
public String sayHello() {
return "你好,中国!";
}
}
- person.java(人实例)
package com.hello.spring;
public class Person {
private IhelloMassage helloMassage;
public IhelloMassage getHelloMassage() {
return helloMassage;
}
public void setHelloMassage(IhelloMassage helloMassage) {
this.helloMassage = helloMassage;
}
public String sayHello(){
return this.helloMassage.sayHello();
}
}<pre name="code" class="java">
然后是一个主方法,Main.java
package com.hello.spring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
@SuppressWarnings("deprecation")
public class Main {
public static void main(String[] args) {
Resource r=new FileSystemResource("helloMassage.xml");
BeanFactory f=new XmlBeanFactory(r);
Person person=(Person) f.getBean("Person");
String s=person.sayHello();
System.out.println("the person say:"+s);
}
}
最后就是spring的配置信息:helloMassage.xml
<?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.hello.spring.HelloWorld"></bean>
<bean id="helloChina" class="com.hello.spring.HelloChina"></bean>
<bean id="Person" class="com.hello.spring.Person">
<property name="helloMassage" ref="helloChina"></property>
</bean>
</beans>
最后运行就可以实现一个这个人说的话了,当然在说的时候,要根据xml的配置信息来决定,在helloMassage.xml中有个clas=com.hello.spring.Person的这个bean标签下面有个property中ref的值来确定的,如果ref的值等于ID=helloworld的标签的时候,那么他就会说英文。所以ref的值就是bean中的ID的属性值。
关于Javabean这个东西我知道的也不是很多,但是上面的main.java中的代码中有个getBean当时我以为他是读取的是Person这个类,但是现在我发现他读取的是xml里面bean中ID=Person的这个具体的实体类。当然也可以从他的方法名中发现,因为他用的是getBean,就是得到一个bean,要使用getBean就先要创建一个工厂类。