spring概述及环境搭建

近来忙于学习oracle,当回过头再看前几天刚学的spring3,发现,都忘了差不多了,趁现在还有点时间,赶紧恶补一下,顺便搬上博客,下次忘记时,好来这里瞧瞧!好了,就进入正题!

首先了解一下spring3

1Spring3是一个非常活跃的开源框架;它是一个基于IOCAOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发。

2Spring3提供了对开源社区中很多框架及JavaEE中很多技术的支持,让程序员很轻松能整合及使用这些框架技术。

3Spring3以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring

总之一句话,写最少的代码,干最多的事,虽然这是JQuery团队一直追逐的宗旨,我想在spring中也可以使用,毕竟,少写代码多干事,是所有码农最想看到的!不是吗?

Spring结构:

 

上图是从spring3中帮助文档中直接截下来的,里面涉及到的常用知识点,我将会在今后spring系列博客中一一讲解。本篇博文只为spring开篇,主要内容为搭建spring开发环境。

环境架设:

      Spring3开发环境搭建非常简单,下面是通过helloWorld这例子解决spring3的环境搭设。

先说说明开发环境:

jdk6 
spring3
eclipse3.7

第一步:导包

      Spring3作为目前一个很火开源框架,能取代ejb霸主地位,必定有几把刷子,其中“非侵入式”开发模式就是一个经典。我们从spring3提供的源码包中可以看出:

 

共21一个jar,集成了java ee开发中大部分技术,你可以根据自己的开发需求,添加相应的jar包,实现spring管理。而我们的helloWorld程序只需要以下一些包就可以了,今后程序中用到什么包时,在详细跟各位解说!

org.springframework.asm-3.1.1.RELEASE.jar--用于字码处理(必须)
org.springframework.core-3.1.1.RELEASE.jar--spring  ---核心工具包,访问资源(必须)
org.springframework.beans-3.1.1.RELEASE.jar  ----核心容器(必须)
commons-logging.jar---spring  ---spring依赖的唯一第三方,日志(必须)
org.springframework.context-3.1.1.RELEASE.jar ---- ----spring 提供在基础 IoC 功能上的扩展服务,此外还提供许多企业级服务的支持,如 邮件服务、任务调度、JNDI定位、EJB 集成、远程访问、 缓存以及各种视图层框架的封装等。
org.springframework.expression-3.1.1.RELEASE.jar ---- ----spring 表达式语言。

 

第二步:编写代码

public class HelloWorld {
    private String msg;
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public void say()
    {
        System.out.println(msg);
    }
}

代码很简单,就是一个普通的helloworld程序,其现实将传入的msg字串通过say方法打印出来!

 

第三步:配置spring环境

spring环境搭建主要是通过xml文件配置而成,具体如下

<!-- 部分1 -->
<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-3.0.xsd">

<!-- 部分2 -->
    <!-- 配置组件,上面编写的helloWold类 -->
    <bean id="sayBean" class="com.langfei.helloworld.HelloWorld">
        <!-- 依赖注入 -->
        <property name="msg" value="喜欢你,没道理! "></property>
    </bean>
</beans>

上面的xml文件模板可以从spring3源码包中自带的实例,或帮助文档中获取。

部分1:spring文件头,为固定格式,配置spring开发环境,根据你运用的需要可以添加更多支持环境

部分2:spring编程核心是IOCAOP,而此注意是ioc的体现,ioc是inversion of controll 控制反转的缩写,在此处大家不必深究,在之后的系列spring博文中将会详细讲解。在此之前,可以将部分2看成new HelloWorld("喜欢你,没道理!")就OK了。

 

第四步:编写测试类

public class SayMsg {
   
public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");
        HelloWorld hw = (HelloWorld) app.getBean("sayBean");
        hw.say();
       
    }
}

测试类很简单,也是一个普通的java类,里面带有main方法

ApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");

beans.xml 就是上面配置的spring环境xml文件,一般将该文件放置在src目录下。 ClassPathXmlApplicationContext类可以通过寻找classPath路径,从而找到bean.xml文件。ApplicationContext 是一个接口,对原始的BeanFactory进行功能增强,而BeanFactory为,spring容器的核心,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。这里我们可以简单地将ApplicationContext看成一个提供类实例的工厂,在Bean.xml文件中配置到的类都可以通过ApplicationContext获取。

HelloWorld hw = (HelloWorld) factory.getBean("sayBean");

“sayBean” 回头看xml文件配置,你会发现sayBean就是之前配置的<bean id>的id值,而该bean 的class属性指定的就是HelolWorld全类名,app通过这个id从spring容器中获取HelloWorld实例。

hw.say();  Helloworld实例调用自身方法,将打印出msg的内容!

第五步:运行

喜欢你,没道理!

这结果可能会奇怪,不必奇怪,这是spring另一项特色(依赖注入)导致的结果!各位估且记住,留个印象,下回继续分解!

原文地址:https://www.cnblogs.com/huapox/p/3172684.html