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


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

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





智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告