学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用
http://www.importnew.com/13246.html


- 导航条 -
首页
所有文章
资讯
Web
架构
基础技术
书籍
教程
我要投稿
更多频道 »
- iOS
- Python
- Android
- Web前端
跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用
让我们用Spring来写第一个应用程序吧。
完成这一章要求:
- 熟悉Java语言
- 设置好Spring的环境
- 熟悉简单的Eclipse IDE的操作
如果你还没有设置好环境,请参考Spring开发环境的配置。
我们第一个程序是打印”Hello World”语句,这个语句通过Spring的配置文件来设置。
1 – 新建Java项目:
第一步用Eclipse IDE新建一个项目。 点击 > File > New > Java Project。然后在弹出的对话框中输入项目的名称,我们就叫HelloWorld吧。这会在你的workspace下新建一个HelloWorld的目录作为项目的根目录。
图片一 新建Java项目
点击Finish。你会在Project Explorer视图看到新建的项目。如果Project Explorer没有打开,请在> Window > Show View中找到。
图片二 Project Explorer视图
2 – 添加Spring库
接下来要加入必要的Spring库添加到CLASSPATH下,以便Eclipse编译和运行程序时能够找到所需要的class。
右键在Package Explorer中点击> Build Path > Configure Build Path...。然后点击Add External JARs...加入我们需要的Spring库。如果还没有下载Spring库,请先下载Spring库。
我们需要加入的Spring库有:
- org.springframework.aop-3.2.9
- org.springframework.aspects-3.2.9
- org.springframework.beans-3.2.9
- org.springframework.context-3.2.9
- org.springframework.context.support-3.2.9
- org.springframework.core-3.2.9
- org.springframework.expression-3.2.9
此外,为了打印信息,我们还需要一个Apache Commons Logging API,在这里下载commons-logging-1.2。本教程写作的时候,最新版是commons-logging-1.2。下载后解压缩到任意目录,我解压到~/commons-logging-1.2。
然后和添加Spring库一样添加commons-logging-1.2.jar到CLASSPATH中。
图片三 添加Spring库
3 – Java源代码
首先新建一个包“com.importnew”。右键点击src,然后> New > Package,新建com.importnew包。
然后我们需要在com.importnew包下新建两个Java源文件HelloWorld.java和MainApp.java。
HelloWorld.java:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package com.importnew;public class HelloWorld { private String message; public void setMessage(String message){ this.message = message; } public String getMessage(){ return this.message; } public void printMessage(){ System.out.println("Your Message : " + message); }} |
MainApp.java:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package com.importnew;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml"); HelloWorld obj = (HelloWorld) context.getBean("helloWorld"); obj.printMessage(); }} |
4 – 配置文件
接下来,我们需要新建一个XML文件来配置bean,这个XML的作用是集中在一个地方,配置和管理所有的bean。有关bean的概念,请看Bean的定义。
我们将这个XML文件也放在src下面,这样就保证Eclipse可以在CLASSPATH下读取到这个文件。
新建一个Beans.xml,当然这个文件名任意,不过要和MainApp.java中ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")设置的一致。
Beans.xml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloWorld" class="com.importnew.HelloWorld"> <property name="message" value="Hello World!"/> </bean> </beans> |
这个Beans.xml文件中设置了bean,包含在<beans>和</beans>中。每个bean都有一个唯一的id。
这个语句为message变量赋值,这样就能打印出Hello World!了。要修改输出,只需要修改XML文件,而不需要修改MainApp.java和HelloWorld.java。
整个HelloWorld项目的目录如图:
图片四 HelloWorld项目结构目录
5 – 运行程序
当你完成了以上的步骤,我们便可以运行程序了。
右键MainApp.java,点击> Run As > Java Application。也可以在工具栏找到运行按钮。
如果一切正常,输出如下:
|
1
|
Your Message : Hello World! |
回顾运作流程
- 首先会运行main()语句,Spring框架使用
ClassPathXmlApplicationContext()首先创建一个容器。 - 这个容器从
Beans.xml中读取配置信息,并根据配置信息来创建bean(也就是对象),每个bean有唯一的id。 - 然后通过
context.getBean()找到这个id的bean,获取对象的引用。 - 通过对象的引用调用
printMessage()方法来打印信息。
好了,这是你的第一个Spring应用。你已经学会用Eclipse新建Java项目,导入Spring和commons-logging库,编写Java源代码和XML配置文件,并且成功运行了。如果要更改输出,只需要修改XML文件中的value值,而不需要更改Java源文件。
下面的章节,我们将会在这个基础上体验Spring更多更强大的功能。

相关文章
- 跟我一起学Spring 3(2)–开发环境配置
- 跟我一起学Spring 3(1)–为什么要学Spring
- Spring MVC + Hibernate + Maven: Crud操作示例
- 理解Spring MVC Model Attribute 和 Session Attribute
- Spring面试问答
- Spring面试问答Top 25
- 如何实现XA式、非XA式Spring分布式事务
- Spring MVC 入门示例讲解
- Spring的IOC原理
- 如何使用Spring开发和监控线程池服务
发表评论
(*) 表示必填项
5 条评论
来自微博的评论


最新评论
这是印度阿三写的,除了少数几个网站还可以,大部分都是垃圾。ryan
markoniong
咨询一个问题。ctx.getChannel().write(response).addListene...张果胜
Re: 浅谈 Java 字符串String 字符串常量 StringBuffer 字符串变量(线程安全) String...oniong
Re: Java实现单例的难点看不懂那个绕过枚举单例保护的反射代码...Constructor con = FooEnumSing...oniong
public T $(int id) { return (T) super.find...kenny
有没有2.6节的链接呢Rocky
Re: Java 9特性人工智能应当最后检验,如果不对就回退到普通方法。大多数情况正确就行。我们

关于ImportNew
ImportNew 专注于 Java 技术分享。于2012年11月11日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
联系我们
Email:ImportNew.com@gmail.com
新浪微博:@ImportNew
微信号:importnew
反馈建议:ImportNew.com@gmail.com
广告与商务合作QQ:2302462408
© 2015 ImportNew


学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用的更多相关文章
- 零基础入门学习javase,应该怎么学?这是我给你的一个建议
我们知道Java有三个方向,JavaSE,JavaME,JavaEE(老程序员可能会叫J2EE等,不过SUN已经改名了).JavaME主要是嵌入式与游戏开发.那我们先看JavaSE,因为只有学好了Ja ...
- 使用Spring开发第一个HelloWorld应用
http://www.importnew.com/13246.html 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Eclips ...
- Java学习之路 -- Java怎么学?
@ 目录 java基础怎么学? 学完基础学什么? 几个常用框架学完学什么? MQ JVM的知识跑不掉 微服务等等 其他 数据结构和算法 java基础怎么学? 当时,作为懵懂的小白,大一学习了c和c++ ...
- 学习《Spring 3.x 企业应用开发实战》Day-1
Day-1 记录自己学习spring的笔记 提要:根据<Spring 3.x 企业应用开发实战>开头一个用户登录的例子,按照上面敲的. 1.项目分层
- 我的第一个spring boot程序(spring boot 学习笔记之二)
第一个spring boot程序 写在前面:鉴于spring注解以及springMVC的配置有大量细节和知识点,在学习理解之后,我们将直接进入spring boot的学习,在后续学习中用到注解及其他相 ...
- html5开发学习 html5自学需要怎么学
记得很多大鳄都说过一句话:只要站在风口上,猪都能飞起来.而对于如今的IT技术领域来说,无疑这只幸运的"猪"非html5莫属.html5开发技术在16年迎来了一个飞跃的发展,这也让很 ...
- C# 桌面软件开发-深入学习[2]- AY-C#人爱学不学-aaronyang技术分享
原文:C# 桌面软件开发-深入学习[2]- AY-C#人爱学不学-aaronyang技术分享 1 : C# Assembly.GetEntryAssembly().GetName().Version. ...
- C# 桌面软件开发-深入学习 [1]- AY-C#人爱学不学-aaronyang技术分享
原文:C# 桌面软件开发-深入学习 [1]- AY-C#人爱学不学-aaronyang技术分享 曾经我做office,不想依赖别人dll,就使用了 Type.GetTypeFromProgID 可以根 ...
- MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql
一.MyBatis简介与配置MyBatis+Spring+MySql 1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的J ...
随机推荐
- 一道综合练习题实践list及dictionary集合类
定义一个员工的集合,对员工集合内的元素进行查询和删除.实现员工的签到和签退,要求如下: //A:每天只能签到一次 //B:签退前必须已经签到 //C:显示打卡记录 代码如下:员工信息类: using ...
- Synergy – 教你在局域网中用一套键盘/鼠标控制多台电脑
想必很多人都拥有多台电脑,譬如台式机+笔记本,很多时候我们都会同时打开它们工作.可是你有没发现,如果桌子上摆放着多台电脑多套键盘鼠标,不停来回切换使用是否很累呢?如果说现在可以只用一套键鼠,就能同时控 ...
- [Java基础] java多线程关于消费者和生产者
多线程: 生产与消费 1.生产者Producer生产produce产品,并将产品放到库存inventory里:同时消费者Consumer从库存inventory里消费consume产品. 2.库存in ...
- Coherence装载数据的研究-PreloadRequest
最近给客户准备培训,看到Coherence可以通过三种方式批量加载数据,分别是: Custom application InvocableMap - PreloadRequest Invocation ...
- 8、面向对象class
对象的概念同其他语言的对象相同 一个基本的类 #!/usr/bin/python class person: def hi(self,name): print 'Hello,%s'%name p1= ...
- 2015年Ubuntu最新Redmine的安装和配置
近期须要在公司内部搭建一个项目管理平台Redmine,在摸索了一天之后.最终配置成功,在这里分享给大家. 公司server的系统是Ubuntu14.04,要安装的是最新的Redmine3.0. 因为R ...
- python 列表合并
列表合并主要有以下方法: 1.用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部 结果:[1, 2, 3, 4, 5, 1, 20, 30] 2.用切 ...
- KVO(Key Value Observing)
*KVO能够监听某个对象属性的改变 原理:仅仅要给一个对象注冊一个监听,那么在执行时, 系统就会自己主动给该对象生成一个子类对象,而且重写自己主动生成的子类对象的被监听属性的set方法.然后在set方 ...
- Node.js meitulu图片批量下载爬虫 1.05版(Final最终版)
//====================================================== // https://www.meitulu.com图片批量下载Node.js爬虫1. ...
- Unity学习笔记 之 关于 Unity UI 的 Slider 的代码记录
代码例如以下: using UnityEngine; using System.Collections; //1.引入 UI . using UnityEngine.UI; public class ...
1
0
