【译】Spring 4 Hello World例子

前言

译文链接:http://websystique.com/spring/spring-4-hello-world-example-annotation-tutorial-full-example/

这个教程将展示一个基于Spring注解配置的Spring 4 Hello world例子,解释Spring 4的基本概念和使用方法。

同样也会提供基于XML配置的示例作为两者的一个比较,我们将创建一个基于maven工程,使用spring版本为4.0.6。

涉及的相关技术及开发工具

  • Spring 4.0.6.RELEASE
  • Maven 3
  • JDK 1.6
  • Eclipse JUNO Service Release 2

工程结构目录

如下是本工程的最终结构目录:

如果想要了解如何创建一个maven工程,请参考以下链接:Maven tutorial。里面包含了详细的步骤来说明如何创建maven工程。

那么,接下来,就让我们在以上目录结构上添加具体内容吧。

步骤一:在maven的pom.xml里添加spring依赖

我们可以通过pom.xml给maven工程添加所有依赖,如下:

<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.websystique.spring</groupId>
    <artifactId>Spring4HelloWorldExample</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <name>Spring4HelloWorldExample</name>

    <properties>
        <springframework.version>4.0.6.RELEASE</springframework.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${springframework.version}</version>
        </dependency>
    </dependencies>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.2</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>

对于这个示例,我们只需要添加Spring core 和 Spring context依赖,其中spring注解是在spring-context里定义的。

步骤二:创建POJO类

Spring提倡低耦合和基于接口编程。

所以,我们首先创建一个POJO接口和它的实现类,这个POJO将作为一个spring bean。

package com.websystique.spring.domain;

public interface HelloWorld {

    void sayHello(String name);
}
package com.websystique.spring.domain;

public class HelloWorldImpl implements HelloWorld{

    public void sayHello(String name) {
        System.out.println("Hello "+name);
    }

}

步骤三:创建Spring配置文件

Spring配置类包含工程中要用到的一些bean的定义。@Configuration注解声明这个类是一个Spring配置类,该类可以包含@Bean注解的方法,该方法创建bean交给spring容器管理。

package com.websystique.spring.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Description;

@Configuration
public class HelloWorldConfig {

    @Bean(name="helloWorldBean")
    @Description("This is a sample HelloWorld Bean")
    public HelloWorld helloWorld() {
        return new HelloWorldImpl();
    }

}

@Description是Spring 4引入的新注解,用于描述bean的定义

以上基于注解的配置与如下的Spring XML配置达到的效果一样(我们把这个文件命名为helloworld-config.xml)

<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-4.0.xsd">

    <bean id="helloWorldBean" class="com.websystique.spring.domain.HelloWorldImpl">

</beans>

步骤四:创建main方法执行该程序

package com.websystique.spring;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;

import com.websystique.spring.configuration.HelloWorldConfig;
import com.websystique.spring.domain.HelloWorld;

public class AppMain {

    public static void main(String args[]) {
        AbstractApplicationContext context = new AnnotationConfigApplicationContext(HelloWorldConfig.class);
        HelloWorld bean = (HelloWorld) context.getBean("helloWorldBean");
        bean.sayHello("Spring 4");
        context.close();
    }

}

AnnotationConfigApplicationContext以我们的配置类(用@Configuration标注)作为入参创建spring应用上下文环境,在程序运行时注册所有在配置类中定义的bean。一旦我们创建了AnnotationConfigApplicationContext对象,就可以通过其getBean方法从spring容器中得到指定的bean对象,并且可以调用该bean对象的方法执行一些操作。

HelloWorld bean = (HelloWorld) context.getBean("helloWorldBean");
bean.sayHello("Spring 4");

运行以上程序,会得到如下结果:

Hello Spring 4

如果使用基于XML的配置,上面的main方法应该这样写:

package com.websystique.spring;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.websystique.spring.domain.HelloWorld;

public class AppMain {

    public static void main(String args[]) {
        AbstractApplicationContext context = new ClassPathXmlApplicationContext("helloworld-config.xml");
        HelloWorld bean = (HelloWorld) context.getBean("helloWorldBean");
        bean.sayHello("Spring 4");
        context.close();

    }

}

其中helloworld-config.xml文件是我们在步骤三中创建的,位于工程classpath下(如/src/main/resources)。

结语

下篇文章,我们将会看到一个bean的自动检测例子,该特性基于注解,可以自动找到应用环境中的所有bean,而不需要在配置类中一个个声明它们。

本例源码

http://websystique.com/?smd_process_download=1&download_id=778

时间: 2024-08-28 15:40:44

【译】Spring 4 Hello World例子的相关文章

Spring简单的小例子SpringDemo,用于初略理解什么是Spring以及JavaBean的一些概念

一.开发前的准备 两个开发包spring-framework-3.1.1.RELEASE-with-docs.zip和commons-logging-1.2-bin.zip,将它们解压,然后把Spring开发包下dist目录的所有包和commons-logging包下的commons-logging-1.1.1.jar复制到名为Spring3.1.1的文件夹下.那么Spring开发所需要的包就组织好了. 二.建立项目,导入包 在项目节点上右键,Build Path/ADD Libraries/U

Spring DI模式 小例子

今儿跟同事讨论起来spring早期的,通过大篇幅xml的配置演变到今天annotation的过程,然后随手写了个小例子,感觉还不错,贴到这里留个纪念. 例子就是用JAVA API的方式,演示了一下DI的注入模式,但因我对设计模式了解的比较少,那本书躺了很久都没时间去看,所以理解的有些幼稚,随后等复习到spring那的时候,详细会有更好的答案. Spring DI模式 小例子

SpringMVC+Spring+Hibernate的小例子

Strusts2+Spring+Hibernate虽然是主流的WEB开发框架,但是SpringMVC有越来越多的人使用了,确实也非常好用,用得爽! 这里实现了一个SpringMVC+Spring+Hibernate的小例子.注释都在代码里面. 项目各包的结构如下图: 1, 首先是pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

Spring Ajax一个简单例子

配置不说了,要在前面helloworld的例子基础上弄. 同样在hello下新建ajax.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isELIgnored ="false" %> <!DOCTYPE html PUBLIC "-//

spring的一个小例子(二)--解析前面的小例子

接上篇:http://www.cnblogs.com/xuejupo/p/5236448.html 首先应该明白,一个web项目,web.xml是入口. 然后下面来分析上篇博客中出现的web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://ww

峰Spring4学习(6)spring AOP的应用例子

一.AOP简介: 二.AOP实例: 三.使用的例子 需求:在student添加的前后,打印日志信息: 0)spring AOP需要引用的jar包: 1)StudentService.java接口: package com.cy.service; public interface StudentService { public void addStudent(String name); } 2)StudentServiceImpl.java实现类: package com.cy.service.i

Spring MVC HelloWorld入门例子

本例子为你讲解在spring3中如何使用基于注解的mvc框架. 例子中使用到的工具: MyEclipse 9.1 jdk 1.6 1.添加Jar包引用 由于使用了Maven管理项目,所以,第一步就是添加引用.(没有使用Maven怎么办?那你直接下载Spring3的压缩包,添加相应的Jar文件就可以了.) Java代码   <dependency> <groupId>org.springframework</groupId> <artifactId>sprin

spring的aop的例子

一个简单的Spring的AOP例子 2009-06-23 11:33:29|  分类: Spring |  标签: |举报 |字号大中小 订阅 package aop; /** * 目标对象的接口 */ public interface Student { public void addStudent(String name); } package aop; /** * 目标对象的接口 */ public interface Student { public void addStudent(St

(原创)Maven+Spring+CXF+Tomcat7 简单例子实现webservice

这个例子需要建三个Maven项目,其中一个为父项目,另外两个为子项目 首先,建立父项目testParent,选择quickstart: 输入项目名称和模块名称,然后创建: 然后建立子项目testInterface: 再建立子项目projectImpl,过程跟上面以上,只是类型要选webapp(到时候启动工程或者打包都是以这个项目为主的): 建好之后,在testParent的pom.xml里面写入下面内容,主要是加入了cxf,junit,logback,springframework的依赖,在父项