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>

复制上面的代码,可以在你的本地运行下啊~~~~

  • 目录结构
    这里写图片描述
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值