Spring - 第一个容易的Spring程序
在使用Spring之前,我们要下载Spring的jar包。
下载地址,官网
http://repo.spring.io/release/org/springframework/spring/
我这里用的3.2.9版本的Spring
解压出jar包,其中包含编译文件、文档、源码
我们说下每个jar都是干什么的。
org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现
org.springframework.asm——spring 2.5.6的时候需要asm jar包,spring3.0开始提供它自己独立的asm jar包
org.springframework.aspects——Spring提供的对AspectJ框架的整合
org.springframework.beans——所有应用都用到,包含访问配置文件,创建和管理bean等,是Spring IOC的基础实现。
org.springframework.context.support——Spring context的扩展支持,用于MVC方面
org.springframework.context——提供在基础IOC功能上的扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。
org.springframework.core——Spring的核心工具包,其他包依赖此包
org.springframework.expression——Spring表达式语言
org.springframework.instrument.tomcat——Spring对tomcat连接池的集成
org.springframework.instrument——Spring对服务器的代理接口
org.springframework.jdbc——对JDBC 的简单封装
org.springframework.jms——为简化jms api的使用而做的简单封装
org.springframework.orm——整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现
org.springframework.oxm——Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
org.springframework.test——对JUNIT等测试框架的简单封装
org.springframework.transaction——为JDBC,HIBERNATE,JDO和JPA提供的一致性的声明式和简单编程式事务管理
org.springframework.web.portlet——Spring MVC的增强
org.springframework.web.servlet——对J2EE6.0 servlet3.0的支持
org.springframework.web.struts——整合struts框架的支持,可以更方便更容易的集成Struts框架。
org.springframework.web——包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
下面我们来第一个简单程序,要实现的内容如下图
- 引入所有jar,其中要引入apache-common-log这个jar包。
- 建立一个接口类
package com.gp.spring01;
public interface IHelloWorld {
public void sayHello();
}
- 创建上面接口的2个实例
package com.gp.spring01;
public class HelloWorld implements IHelloWorld {
@Override
public void sayHello() {
System.out.println("Say Hello");
}
}
package com.gp.spring01;
public class HelloChina implements IHelloWorld {
@Override
public void sayHello() {
System.out.println("Hello World");
}
}
- 创建Person类
package com.gp.spring01;
public class Person {
IHelloWorld iHelloWorld;
public IHelloWorld getiHelloWorld() {
return iHelloWorld;
}
public void setiHelloWorld(IHelloWorld iHelloWorld) {
this.iHelloWorld = iHelloWorld;
}
public void say() {
iHelloWorld.sayHello();
}
}
分析此类直接调用接口中的方法,并没有指定接口的实现类。
- Main方法
package com.gp.spring01;
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;
public class Main {
public static void main(String[] args) {
Resource r = new FileSystemResource("helloMessage.xml");
BeanFactory f = new XmlBeanFactory(r);
Person person = (Person) f.getBean("person");
person.say();
}
}
注意代码中加载了helloMessage.xml
- helloMessage.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="helloWord" class="com.gp.spring01.HelloWorld" />
<bean id="helloChina" class="com.gp.spring01.HelloChina" />
<bean id="person" class="com.gp.spring01.Person">
<property name="iHelloWorld" ref="helloChina"></property>
</bean>
</beans>
此xml起到的是IOC容器的作用,它将各Bean建立联系,代码中8-10行,将Person对象的iHelloWorld接口指向helloChina完成相互之间的依赖。如果我们要实现helloChina接口,只需改成如下即可
<bean id="person" class="com.gp.spring01.Person">
<property name="iHelloWorld" ref="helloChina"></property>
</bean>
复制上面的代码,可以在你的本地运行下啊~~~~
- 目录结构
版权声明:本文为博主原创文章,未经博主允许不得转载。