白话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
- 白话Spring(基础篇)---helloworld
- 白话Spring(基础篇)---IOC
- 白话Spring(基础篇)---依赖注入
- 白话Spring(基础篇)---参数注入
- 白话Spring(基础篇)---自动装配
- 白话Spring(基础篇)---AOP(理论篇)
- 白话Spring(基础篇)---AOP(实例篇-1)
- 白话Spring(基础篇)---AOP(实例篇-2)
- 白话Spring(基础篇)---AOP(实例篇-3)
- 白话Spring(基础篇)---AOP(实例篇-4)
- 白话Spring(基础篇)---AOP(execution表达式)
- 白话Spring(基础篇)---编程式事务(1)
- 白话Spring(基础篇)---声明式事务(2)
- 白话Spring(基础篇)---AOP(execution表达式)
- 白话Spring(基础篇)---方法注入与方法替换
- 白话Spring(基础篇)---bean之间的关系
- 白话Spring(基础篇)---bean的作用域
- 白话Spring(基础篇)---事务传播行为与隔离级别
- 千里码【5】访客统计
- 深入理解JVM之垃圾回收详解
- 第一天:代码入门、HTML语法基础及文档类标签
- ios静态库与动态库的区别
- jq与JS点击显示隐藏二级菜单的几种方法
- 白话Spring(基础篇)---helloworld
- 1090 Higest Price in Supply Chain
- 学习android service记录
- Linux 初始化之 Systemd机制简介
- Swift 笔记(四)
- UML图与机房收费系统实例
- 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
- java.lang.ThreadLocal实现原理和源码分析
- 四叉树空间索引原理及其实现