白话Spring(基础篇)---helloworld

来源:互联网 发布:云计算怎么实现 编辑:程序博客网 时间:2024/05/21 10:22

[一知半解,就是给自己挖坑]

Spring是我们现在经常会使用到的基础框架服务,并且我相信懂得使用Spring来开发的人大有人在。但是,最近博主在使用spring与别的框架整合时,经常会遇到不同的需求和错误,而且往往不知道这些问题到底是哪里导致的。因此,接下来的文章中,我们将对Spring的使用做一下简单的总结。对于Spring的详细介绍及其原理,我们会先通过具体实例,再按照通俗的语言来解释。

准备工作:

a.操作系统:win7 x64

b.开发工具:eclipse mars j2ee版本,maven3.3.2,Spring 4

-------------------------------------------------------------------------------------------------------------------------------------

正文开始:

1.spring的简介:百度百科

2.使用maven创建helloworld工程,创建步骤请参考:Maven简明教程(3)---在eclipse中创建工程与基本命令介绍,创建成功之后工程结构图如下所示:


3.修改pom文件,具体内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.java.maven</groupId><artifactId>helloworld</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>helloworld</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.0.5.RELEASE</spring.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- 添加Spring支持 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-asm</artifactId><version>3.1.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency></dependencies></project>

4.创建TestWork.java文件,用来作为我们演示业务层的功能,具体内容如下:

package com.java.ingo.service;/***@author 作者 E-mail:*@version 创建时间:2016年2月27日下午3:46:37*类说明*/public class TestWork {public void sayHello(){System.out.println("hello world");}}
5.创建HelloWord.java文件,用来作为控制层的功能演示,具体内容如下:

package com.java.ingo.helloworld;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.java.ingo.service.TestWork;public class HelloWorld {public static void main(String[] args) {//首先读取配置文件,配置文件中的bean将会保存到ApplicationContext的实例中ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:beans.xml");//从ApplicationContext的实例中按照id值获取对应类的实例对象,并且需要进行强制类型TestWork tw = (TestWork) ac.getBean("helloworld");//使用对象的内部方法,就像我们使用new创建的对象一样tw.sayHello();}}

6.创建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 id="helloworld" class="com.java.ingo.service.TestWork"></bean>  </beans>
我们逐一解释一下这份配置文件的含义:

a.<?xml version="1.0" encoding="UTF-8"?>表示这是xml文件的开头声明xml使用的版本,以及编码方式,其一般为通用配置。

b.xmlns表示XML Namespaces的缩写,中文名称是XML命名空间。这里使用的默认的命名空间:xmlns="http://www.springframework.org/schema/beans"。在xml文件中,标签都是我们自定义的,但是我们自定义的标签可能与别人定义的产生冲突,所以,这里我们需要使用一个命名空间来标识。可以理解命名空间是一个包的名称,包的名称是自定义的。包内部的方法,参数可能与别的包内部的重名,但是在两个包里面,那也就不需要担心冲突了。

c.xmlns:xsi表示xml文件遵守了xsi所定义的规范。这里xsi的全称是xml schema instance。它代替了后面的url地址,即“http://www.w3.org/2001/XMLSchema-instance“,特别的这里的xsi只是人们习惯上这么定义,我们当然可以换一个别的名称,无论怎么取,它都是url地址的别名。实际解析xml文档时,解析器就会按照url的地址规定的规则来解释当前的xml文档。

d.xsi:schemaLocation表示xml书写遵循的语法。schemaLocation是其一个属性,该属性由两部分组成:前半部分是命名空间的名称,后半部分是xsd的地址。这里作用是把这个地址表示的xml文件引进来,方便eclipse等开发工具判断xml是否符合语法。这里的作用等价于<import namespace="xxx" schemaLocation="xxx.xsd"/>。

e.bean表示我们的让spring托管的一个对象,这个对象的id是hellworld,id是class对象的别名,我们使用时调用这个id就表示调用后面的class表示的对象。特别的,这个id是唯一的,不能够重复。


7.测试方法:

运行helloworld.java中的main方法,即可看到控制台输出”hello world“字符串

--------------------------------------------------------------------------------------------------------------

至此,白话Spring(基础篇)---helloworld结束


特别备注:

最后我们给出一张实际的bean照片,来帮助理解这个spring中的bean,即spring所替我们封装后提供的服务,当然我们后面还会详细的介绍。

参考资料:

Spring官网:http://spring.io/docs

百度文库:spring

其他博文:http://blog.csdn.net/zhengyeqing520/article/details/6091656





2 0
原创粉丝点击