http://www.importnew.com/13246.html

  • 首页
  • 所有文章
  • 资讯
  • Web
  • 架构
  • 基础技术
  • 书籍
  • 教程
  • 我要投稿
  • 更多频道 »

- 导航条 -首页所有文章资讯Web架构基础技术书籍教程我要投稿更多频道 »- iOS- Python- Android- Web前端

跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用

2014/10/10 | 分类: 教程 | 5 条评论 | 标签: SPRING, 教程

分享到:19

本文作者: ImportNew - 唐小娟 未经许可,禁止转载!

让我们用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.javaMainApp.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/beans
http://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!

回顾运作流程

  1. 首先会运行main()语句,Spring框架使用ClassPathXmlApplicationContext()首先创建一个容器。
  2. 这个容器从Beans.xml中读取配置信息,并根据配置信息来创建bean(也就是对象),每个bean有唯一的id。
  3. 然后通过context.getBean()找到这个id的bean,获取对象的引用。
  4. 通过对象的引用调用printMessage()方法来打印信息。

好了,这是你的第一个Spring应用。你已经学会用Eclipse新建Java项目,导入Spring和commons-logging库,编写Java源代码和XML配置文件,并且成功运行了。如果要更改输出,只需要修改XML文件中的value值,而不需要更改Java源文件。

下面的章节,我们将会在这个基础上体验Spring更多更强大的功能。

关于作者: 唐小娟

一名在路上的程旭媛

查看唐小娟的更多文章 >>

19

相关文章

  • 跟我一起学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开发和监控线程池服务

发表评论

Name*
邮箱*
网站 (请以 http://开头)

(*) 表示必填项

提交评论

5 条评论

  1. flylee
    2014/10/10 上午 11:40

    支持!期待下一篇教程

     1  0

    回复

  2. neven7
    2014/10/15 下午 12:05

    Beans.xml 文章中不全

     0  0

    回复

    • 唐小娟
      2014/10/31 下午 2:20

      谢谢指正 已更新

       1  0

      回复

  3. mugbya
    2014/10/22 下午 5:41

    很好的站点,还有程旭媛的译文跟原创 nice

     0  0

    回复

  4. z1215775054
    2015/04/16 下午 12:59

    入门的好文章,赞一个

     0  0

    回复

来自微博的评论

« Java EE7和Maven工程入门(2)
Java EE7和Maven工程入门(3) »

  • 本月热门文章
  • 年度热门文章
  • 热门标签

0泛型中? super T和? extends T的区别

1译文:理解Java中的弱引用

2Java Servlet工作原理问答

3怎样处理InterruptedException

4Java编程入门(2.4):文本输入和输出

5Java Main如何被执行?

6初探Java字符串

7使用RelProxy提高Java开发效率

8Java编程入门(2.3):类、对象和子程序

9java中i=i++问题分析

最新评论

  • Re: 快速高效学习Java编程在线资源Top 20
    这是印度阿三写的,除了少数几个网站还可以,大部分都是垃圾。ryan
  • Re: Java I/O底层是如何工作的?
    markoniong
  • Re: Netty教程—Part3—ChannelEvent—真的吗?
    咨询一个问题。ctx.getChannel().write(response).addListene...张果胜
  • Re: 浅谈 Java 字符串
    String 字符串常量 StringBuffer 字符串变量(线程安全) String...oniong
  • Re: Java实现单例的难点
    看不懂那个绕过枚举单例保护的反射代码...Constructor con = FooEnumSing...oniong
  • Re: 泛型中? super T和? extends T的区别
    public T $(int id) { return (T) super.find...kenny
  • Re: Java编程入门(2.4):文本输入和输出
    有没有2.6节的链接呢Rocky
  • Re: Java 9特性
    人工智能应当最后检验,如果不对就回退到普通方法。大多数情况正确就行。我们

关于ImportNew

ImportNew 专注于 Java 技术分享。于2012年11月11日 11:11正式上线。是的,这是一个很特别的时刻 :)

ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……

推荐关注

小组 – 好的话题、有启发的回复、值得信赖的圈子
头条 – 写了文章?看干货?去头条!
相亲 – 为IT单身男女服务的征婚传播平台
资源 – 优秀的工具资源导航
翻译 – 活跃 & 专业的翻译小组
博客 – 国内外的精选博客文章
前端 – JavaScript, HTML5, CSS
安卓 – 专注Android技术分享
iOS – 专注iOS技术分享
Java – 专注Java技术分享
Python – 专注Python技术分享

联系我们

Email:ImportNew.com@gmail.com
新浪微博:@ImportNew
微信号:importnew

反馈建议:ImportNew.com@gmail.com
广告与商务合作QQ:2302462408

© 2015 ImportNew

学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用相关推荐

  1. 一德教育:孩子在学习了国学之后可以学到什么?

    近些年国学热开始兴起,很多地方都办起了国学班,很多家长看到了中华传统文化的利处,指出我们作为中国人民,应该好好学习中华传统文化.但其中有一个问题困扰了许多的家长,那就是孩子到底要不要学习国学? 在讨论 ...

  2. 《Spring Boot+Vue全栈开发实战》读书笔记

    写在前面 嗯,回家处理一些事,所以离职了,之前的公司用开源技术封装了一套自己的低代码平台,所以之前学的spring Boot之类的东西都忘了很多,蹭回家的闲暇时间复习下. 笔记整体以 Spring B ...

  3. 熬夜整理了2021年Python最新学习资料,分享给学弟学妹们【大学生必备】

    Python最新学习资料和视频 一.Python软件 安装教程 视频教程 二.学习规划 阶段一:Python基础 阶段二:Python核心编程 阶段三:web前端开发 阶段四:数据库 阶段五:后端开发 ...

  4. Java学习之路 -- Java怎么学?

    文章目录 java基础怎么学? 学完基础学什么? 几个常用框架学完学什么? MQ JVM的知识跑不掉 微服务等等 其他 数据结构和算法 java基础怎么学? 当时,作为懵懂的小白,大一学习了c和c++ ...

  5. SpringCloud学习一(回顾之前学的微服务知识点、springcloud入门概述、服务提供者和消费者)

    一.回顾之前,如何学习springcloud 回顾之前的知识? JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot Dubbo ...

  6. 深度学习原来还可以这么学!

    最近身边很多朋友在讨论人工智能,讨论人工智能在我们生活中的应用,随之而来就开始讨论深度学习技术,但是由于深度学习的涉及面比较广,对数学的要求比较高,所以想学也不太敢学,生怕认真学了却没学会.其实可能还 ...

  7. python零基础难学吗-如何从零开始学习Python,零基础学python难吗

    Python并不难学,它诞生至今已经过25个年头,但相对于其他语言,它更加易学.易读,非常适合快速开发,Python编程简单直接,更适合初学编程者. 那么,如何从零开始学习python呢? 可以分为这 ...

  8. spring2.0和spring2.5及以上版本的jar包区别 spring jar 包详解

    spring jar 包详解 spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环 ...

  9. 福州java培训哪里好_广州java学习哪里好?需要学多长时间

    现在我国各地都有很多的java培训机构,这让很多想转行到java领域的朋友有了学习的平台.那么,广州java学习哪里好?需要学多长时间?这个问题就由动力节点java培训机构的小编来为大家解答. 广州j ...

最新文章

  1. Windows批处理中的等待技巧
  2. 计算机软硬件作品构思报告,计算机方面的实训报告
  3. My Goal For SE
  4. 如何将瀑布流里的图片加链接_只需5步!魔幻丛林瀑布后期揭秘
  5. c++ 输出二进制_【位运算与状态压缩】二进制的魅力
  6. Supporting Python 3(支持python3)——为Python 3做准备
  7. java uuid静态方法_Java UUID timestamp()方法与示例
  8. How to uninstall Internet Explorer 7
  9. pcb只开窗不镀锡_案例图解射频PCB设计要点
  10. 恭喜你,20级考研生!你将在考研前看到这篇最靠谱的学习方法!
  11. 用ABC三个字母简洁归纳2018年物联网趋势
  12. 《Cortex-M0权威指南》之体系结构---嵌套中断控制器(NVIC)
  13. 你真的会写二分查找吗
  14. Emmet 简写语法
  15. 灵悟礼品网上专卖店——画出项目的主要框架
  16. 如何用流程图描述算法?
  17. 数据分析 告诉你《飞驰人生》为什么这么燃?
  18. 牛客华为机试-查找排序
  19. vue项目使用svg文件
  20. 微信聊天机器人搭建方式分享

热门文章

  1. python utf-8编码转换中文_python实现unicode转中文及转换默认编码的方法
  2. 我为什么要冒险从工业界离职做内容平台有三AI
  3. 【图像分割应用】医学图像分割(一)——脑区域分割
  4. 【AI-1000问】为什么深度学习图像分类的输入多是224*224
  5. 全球及中国汽车涂料市场前景态势与投资渠道分析报告2022版
  6. VB.NET 创建WORD文档
  7. Zjoi2010排列计数Perm
  8. 2018提高组训练Day2
  9. ADSL(Asymmetric Digital Subscriber Loop)技术
  10. Redis 之(二) Redis的基本数据结构以及一些常用的操作