初接触Spring,先写个Hello吧。
I.Hello Spring
1.导入相关JAR包
2.Hello.java
package com.duxd.bean;
public class Hello {
private String name;
public Hello() {
System.out.println("Hello被创建!");
}
public void setName(String name) {
this.name = name;
}
public void show() {
System.out.println("Hello," + name + "!");
}
}
3.Beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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">
<!-- bean就是Java对象 由Spring容器来创建和管理 -->
<bean name="Hello" class="com.duxd.bean.Hello">
<property name="name" value="Spring" />
</bean>
</beans>
4.测试代码
package com.duxd.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.duxd.bean.HelloBean;
public class Test {
public static void main(String[] args) {
// 解析Beans.xml文件,生成管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
HelloBean hello = (HelloBean) context.getBean("Hello");
hello.show();
}
}
5.结果
Hello被创建!
Hello,Spring!
程序并未主动创建Hello对象,结果却是Hello对象被创建了,其实Hello对象是由Spring来创建的,Hello的属性是由Spring来设置的。
II.为什么使用Spring
由上面结果可知,Spring的一项重要特性: 控制反转(ioc)1.什么是控制反转?
控制:指谁来控制对象的创建。传统的应用程序对象的创建是由程序本身来创建对象,使用Spring后是由Spring来创建对象。
反转:正转指的是由程序创建对象,反转指程序本身不去创建对象,而变为被动的接受对象。
控制反转:从原来的由程序来创建对象,变为了Spring来创建对象,程序只需要被动的接收Spring创建好的对象。
控制反转带来的好处是:应用程序发不用创建对象,通过接收Spring创建的对象,实现了程序的解耦,使得程序员精力可集中在业务的开发上,并且在修改应用程序时,尽可能少的更改源码。