`

spring超级简单入门例子

阅读更多

首先是一个名叫Action的接口定义了一个execute()方法

package net.xiaxin.spring.qs;

public interface Action {
	
	public String execute(String str);

}

 

实现类LowerAction

package net.xiaxin.spring.qs;

public class LowerAction implements Action {

	private String message;
	
	@Override
	public String execute(String str) {
		// TODO Auto-generated method stub
		return (getMessage()+str).toLowerCase();
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}

实现类UpperAction

package net.xiaxin.spring.qs;

public class UpperAction implements Action {
	
	private String message;

	@Override
	public String execute(String str) {
		// TODO Auto-generated method stub
		return (getMessage()+str).toUpperCase();
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}

  新建bean.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-4.0.xsd">
	<bean id="TheAction" class="net.xiaxin.spring.qs.UpperAction">
		<property name="message"><!--初始化-->
			<value>HeLLo</value>
		</property>
	</bean>
</beans>

请确保配置bean.xml位于工作路径之下,注意工作路径并不等同于CLASSPATH ,eclipse的默认工作路径为项目根路径,也就是.project文件所在的目录,而默认输出目录/bin是项目CLASSPATH的一部分,并非工作路径。

 

测试类Test

package test;

import net.xiaxin.spring.qs.Action;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Test {
	
	public static void main(String[] args) {
		ApplicationContext txt=new FileSystemXmlApplicationContext("bean.xml");
		Action action=(Action) txt.getBean("TheAction");
		System.out.println(action.execute("sdf"));
	}

}

上面的测试代码中,我们根据 "bean.xml" 创建了一个 ApplicationContext 实例,并从此实例中获取我们所需的Action实现 

 

仔细观察一下上面的代码,可以看到:
1. 我们的所有程序代码中(除测试代码之外) ,并没有出现Spring中的任何组件。
2. UpperAction和LowerAction的Message属性均由Spring通过读取配置文件(bean.xml)动态设置。
3. 客户代码(这里就是我们的测试代码)仅仅面向接口编程,而无需知道实现类的具体名称。同时,我们可以很简单的通过修改配置文件来切换具体的底层实现类。

 

上面所说的这些,对于我们的实际开发有何帮助?
首先,我们的组件并不需要实现框架指定的接口,因此可以轻松的将组件从Spring中脱离,甚至不需要任何修改(这在基于EJB框架实现的应用中是难以想象的) 。
其次,组件间的依赖关系减少,极大改善了代码的可重用性。Spring的依赖注入机制,可以在运行期为组件配置所需资源,而无需在编写组件代码时就加以
指定,从而在相当程度上降低了组件之间的耦合。
上面的例子中,我们通过Spring,在运行期动态将字符串 “HeLLo” 注入到Action实现类的

 

以上例子来源于spring开发指南

分享到:
评论

相关推荐

    intellij idea 2017 spring mvc 入门

    【描述】:“Java Spring MVC超简单,Spring MVC入门,第一个Java程序,IntelliJ IDEA入门” 这表明我们将从零开始,逐步学习如何在IntelliJ IDEA这个强大的Java集成开发环境中配置Spring MVC环境,创建并运行一个...

    spring-data-mongodb-reference 1.5.4

    - **超媒体支持**:支持使用 Pageable 参数来构建链接到其他资源的超媒体文档。 - **Repository Populators**:可以用来初始化数据库或填充初始数据。 - **遗留 Web 支持**: - **域类 Web 绑定**:Spring MVC ...

    mybatis入门教程(一)(超简单)1

    【标题】:“mybatis入门教程(一)(超简单)1” 【描述】:“2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护3、向preparedStatement中设置参数,对占” 【标签】:...

    Spring Security3技术手册

    了解如何配置这些过滤器是入门Spring Security的关键。 - **示例代码**: 在`web.xml`中配置`&lt;filter&gt;`和`&lt;filter-mapping&gt;`,定义Spring Security的入口。 - **1.2 使用命名空间** - Spring Security支持在`...

    《Oracle 11g从入门到精通》-书本光盘下载-正式版

    根据提供的文件信息,我们可以从《Oracle 11g从入门到精通》这本书中提炼出一些重要的知识点。本书主要围绕Oracle 11g数据库系统展开,不仅适合初学者,也适用于有一定经验的技术人员深入学习。 ### Oracle 11g概述...

    webservice入门,一看就懂的。 很明显的。

    Spring框架提供了丰富的支持,包括Spring-WS和Spring-Integration,使得构建和消费Web服务变得更加简单。Spring-WS专注于创建基于WSDL的契约优先的Web服务,而Spring-Integration则关注于企业级应用集成。 在Spring...

    MyBatis入门介绍(超简单)

    以下是一个简单的MyBatis使用示例,演示如何根据用户ID查询用户信息: 1. 首先,在`SqlMapConfig.xml`中配置数据源和mapper文件引用: ```xml ${jdbc.driver}"/&gt; ${jdbc.url}"/&gt; ${jdbc.username}"/&gt; ${...

    Unity绳子/绳索效果例子

    例如,Spring Joint可以模拟绳索的弹性,通过调整其属性,如弹簧强度、Damper(阻尼)等,来控制绳索的软硬度和动态效果。 此外,如果`Assets`文件夹中包含有脚本(Script),那这些脚本很可能是自定义的,用于处理...

    Activiti6.0教程例子下载

    Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。 Activiti 流程引擎...

    ssh框架快速搭建详细教程

    idea集成开发环境下的,用mysql快速搭建ssh(struts2+spring+hibernate)矿建,超详细教程,有实例供参考,方便快速入门

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    SpringBoot HATEOAS用法简介(入门)

    然后,需要添加其他依赖项,以便完成简单的CURD例子: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-data-jpa &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    SSM框架整合源码.rar

    SSM框架整合是Java开发中常见的技术栈,主要包括Spring、SpringMVC和Mybatis三个核心组件。...你可以结合博客文章《Java的SSM框架超详细整合入门》深入学习,理论与实践相结合,更好地掌握SSM框架的整合技巧。

    javaEE springboot(一)-(四)的代码资源

    在"springboot(一)"阶段,可能涉及的是SpringBoot的入门知识,比如创建第一个SpringBoot应用、理解启动器(Starters)的作用、如何配置日志系统(Logback或Log4j2)以及使用Spring Initializr快速初始化项目。...

    从零开始学java web

    第一章:Java Web入门 这一章通常会介绍Java Web的基本概念,包括Web应用的架构、Java在Web开发中的角色,以及如何搭建开发环境,如安装JDK、设置环境变量,以及配置Tomcat服务器。 第二章:HTML与CSS基础 HTML(超...

    activiti5.X超详细使用步骤总结+Activiti5.4 用户指南(中文版) .pdf

    - 安装:Activiti可以作为独立的服务运行,也可以集成到Spring等框架中。首先,你需要下载Activiti的发布包,解压后配置数据库连接、Tomcat或Jetty服务器,然后将Activiti的web应用部署到服务器上。 - 部署:配置...

    Olympic_College_Ashton_Krause_CIS_155_Spring_2021

    课程的主题可能是 CIS 155,这通常指的是计算机信息系统或相关入门课程,旨在教授学生基本的计算机编程和网页设计技能。 描述中的内容与标题相同,进一步确认这是一个课程相关的资源包,可能包含了讲义、作业、项目...

    Java Servlets编程指南,相当不错的sservlets入门教程.rar

    9. **MVC框架**:Servlet常与Model-View-Controller(MVC)设计模式结合使用,如Spring MVC,提高代码组织和可维护性。 10. **JSP(JavaServer Pages)**:JSP是另一种Java Web技术,可与Servlet配合使用,负责视...

Global site tag (gtag.js) - Google Analytics