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

本文通过一个简单的HelloWorld示例,详细介绍了Spring的基础使用,包括如何创建Spring工程、配置Bean以及测试运行。通过通俗易懂的语言解释了XML配置文件的关键元素,如命名空间、schemaLocation和bean的定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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.youkuaiyun.com/zhengyeqing520/article/details/6091656





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值