晋南讲堂之Spring—(一)HelloWorld

1.基本概念

  Spring是一个开源的IOC(DI)和AOP框架,可以简化企业级应用的开发。
(1) 轻量级:Spring是非侵入性的,基于spring开发的应用可以不依赖spring的API。
(2) spring是一个容器,它容纳并且管理对象的全声明周期
(3)spring实现了使用简单的组件配置组合成一个复杂的应用,在spring中可以使用XML和Java注解组合这些对象。
(4) 在IOC和AOP的基础上可以整合各种企业应用的开源框架(比如mybatis,Hibernate,struts2等)和第三方类库。
(4) Spring也提供了表现层的SpringMVC和持久层的Spring JDBC。

2. eclipse配置Spring

  如何下载Spring,点击这里看方法,下载时需要下载类似于spring-framework-版本号.RELEASE-dist.zip的文件。里面包含了项目所用到的各种jar包。
  在eclipse for java se上配置spring,首先要确保eclipse上首先配置好Java EE插件,如何配置,点击这里。否则spring安装时会提示失败。
晋南讲堂之Spring—(一)HelloWorld_第1张图片
emsp; 配置好Java EE插件后,还需要下载STS(Spring tool suite),点击这里下载,下载好了以后,打开eclipse–Help–Install New Software–add–archive,找到下载好的STS压缩包的位置,选择点击ok,待eclipse将压缩包解析后,只勾选有Spring IDE的项,然后点击下一步直到安装结束位置。
晋南讲堂之Spring—(一)HelloWorld_第2张图片
emsp; 安装好之后,重启eclipse在欢迎页显示出如下内容:
晋南讲堂之Spring—(一)HelloWorld_第3张图片
在Window–preferences,显示出如下内容:
晋南讲堂之Spring—(一)HelloWorld_第4张图片

3. Spring-HelloWorld

  Spring的项目依赖以下五个包,在下载好的spring-framework文件中的libs目录下里找到图片中的后四个。commons-logging是spring依赖的日志包,下载日志包点击这里,如下述网页截图所示,如果需要源码还可以下载下面的源码。
晋南讲堂之Spring—(一)HelloWorld_第5张图片
晋南讲堂之Spring—(一)HelloWorld_第6张图片
  上述五个jar包找到之后,在eclipse里新建项目Spring-HelloWorld,新建Folder命名为lib,将上述五个包复制到该文件夹下,全选之后build path–add to build path之后加载至类路径下。
  在src目录下新建名称为com.spring.beans的包,新建类HelloWorld.java,写入如下代码:

package com.spring.beans;

public class HelloWorld {

	private String name;
	
	public void setName(String name) {
		this.name = name;
	}
	
	public void hello() {
		System.out.println("hello:"+name);
	}

}

  同样在该包中创建一个Main.java的主类,内容如下:

package com.spring.beans;
import com.spring.beans.HelloWorld;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.创建HelloWorld的一个对象
		HelloWorld helloWorld = new HelloWorld();
		// 2.为name属性赋值
		helloWorld.setName("sai");
		//3.调用hello方法
		helloWorld.hello();
	}
}

  如果不使用spring,通常我们按照上述的方式进行。采用spring之后,第一步第二步交给spring来完成。
  在src下新建spring的配置文件,命名为applicationContext.xml,点到finish为止。
晋南讲堂之Spring—(一)HelloWorld_第7张图片
  applicationContext.xml中写如下配置信息:



	
	
		
	


  其中class属性值为HelloWorld的全类名,id值是给这个bean起一个标识。property标签表示属性,name属性中的name为bean中的属性,name对应的value值为Sai。紧接着将Main.java中的代码改为如下:

package com.spring.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.spring.beans.HelloWorld;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*//创建HelloWorld的一个对象
		HelloWorld helloWorld = new HelloWorld();
		// 为name属性赋值
		helloWorld.setName("sai");*/
		
		//1.创建spring的IOC容器对象
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		//2.从IOC容器中获取Bean实例
		HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");
		//调用hello方法
		helloWorld.hello();
	}
}

最后打印出的结果如下:
晋南讲堂之Spring—(一)HelloWorld_第8张图片
详细分析代码,下面这一行代码表示创建IOC容器对象,ClassPathXmlApplicationContext表示从类路径下获取spring bean的配置信息,执行完这一句,spring会调用HelloWorld(Bean)中的无参构造器创建一个HelloWorld类的实例,并调用setName()方法将配置文件中的name对应的value值传递给该对象。

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

经过上述的操作,在容器中就存在了一个实例对象,这个时候需要从容器中获取该对象,则执行下述语句,getBean()中的字符串即为先前设置的bean的id值。

HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");

之后再调用该对象的方法就顺理成章了。

你可能感兴趣的:(Spring框架)