在开始第一个Spring应用前,让我们先做如下一些准备:
JDK(1.5以上)
Eclipse
Maven及m2eclipse插件(可选,如果熟悉Maven可以很快的在项目中加入所需的Spring Jar包,如果想用Maven,那就自学一下,只要学一点基础就可以了)
Ok,让我们开始吧。首先,在Eclipse中创建一个Maven Project或Java Project,如果创建Maven Project,在第一个页面直接勾选Create a simple project即可:
然后点击next,下一步中的输入任意Group Id和Artifact Id即可。
创建好Maven工程后,在pom.xml中添加如下信息:
<properties> <spring.version>3.2.0.RELEASE</spring.version> </properties> <dependencies> <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> </dependencies>
添加的jar包如下:
那么没用Maven的同学就自己去网上找下这三个jar包添加到自己的工程中吧,其中Spring jar的版本可以任意,最好是2.5以上并且Spring的jar包之间的版本号最好保持一致。
一切准备就绪,下面就开始code了。假设我们需要一个Car的类,其中包含一些汽车的部件,比如发动机和轮胎,那么首先我们来构造这些零件,创建如下的两个抽象类:
Engine抽象类及实现类:
package com.zrabbit.production.part; public abstract class Engine { public abstract void launch(); public abstract void showInfo(); }
package com.zrabbit.production.part; public class EngineOne extends Engine { @Override public void launch() { System.out.println("Engine one lauch!!"); } @Override public void showInfo() { System.out.println("Engine is One!!"); } }
Wheel抽象类及实现类:
package com.zrabbit.production.part; public abstract class Wheel { public abstract void showInfo(); }
package com.zrabbit.production.part; public class WheelNumOne extends Wheel { @Override public void showInfo() { System.out.println("Wheel is No.1!"); } }
好吧,上面的代码很简单,现在我们来构架Car:
package com.zrabbit.production; import java.util.List; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import com.zrabbit.production.part.Engine; import com.zrabbit.production.part.Wheel; @SuppressWarnings(deprecation) public class Car { private Engine engine; private List wheels; public Engine getEngine() { return engine; } public void setEngine(final Engine engine) { this.engine = engine; } public List getWheels() { return wheels; } public void setWheels(final List wheels) { this.wheels = wheels; } public void showInfo() { engine.showInfo(); for (final Wheel wheel : wheels) { wheel.showInfo(); } } public void launch() { engine.launch(); } }
接下来在工程任意位置创建一个XML文件,此文件为Spring配置文件,由于习惯,我在src/main/resources下创建了一个名叫applicationConfig.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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <bean id="myCar" class="com.zrabbit.production.Car"> <property name="engine" ref="engineOne" /> <property name="wheels" > <list> <ref bean="wheelNumOne" /> <ref bean="wheelNumOne" /> <ref bean="wheelNumOne" /> <ref bean="wheelNumOne" /> </list> </property> </bean> <bean id="engineOne" class="com.zrabbit.production.part.EngineOne" /> <bean id="wheelNumOne" class="com.zrabbit.production.part.WheelNumOne" /> </beans>
其中根标签beans表明其内部为Spring bean的配置信息,Spring bean其实就是一个交由Spring管理的pojo,Spring通过Ioc将这些bean的成员填充进去。
beans标签会有若干个命名空间的别名及Location定义,这些在初学的时候可以不必太关心,copy下即可。其中别名代表在这个配置文件中需要用到的模块,比如context,aop,jdbc等等。xsi:schemaLocation则指定这些模块的xsd文件所在url,这些文件主要用于提示和验证。
beans标签内会包含若干个bean标签,每一个bean标签就代表一个Spring bean。其中id为唯一表示,通常用于成员依赖(reference)和取到这个bean。class指明这个bean关联的pojo,一般情况下,每一个bean都必须指明其class。
在bean标签的内部是property标签,每一个property标签都代表这个bean关联的pojo中的一个成员,简单类型,如基本类型、基本类型的包装类、String等可以通过value属性制定,复杂类型一般通过ref属性找到对应的bean进行注入(当然像内部bean这样的方法也可以)。
最后说一下Car中的wheels成员,这个成员是一个List类型,在指定这个property的时候,可以嵌套使用list标签,其内部可以使用ref或value标签。
接下来就可以运行一下第一个Spring程序了,在Car类中加一个main方法:
public static void main(final String[] args) { final Resource res = new ClassPathResource("applicationContext.xml"); final BeanFactory bf = new XmlBeanFactory(res); final Car myCar = (Car) bf.getBean("myCar"); myCar.showInfo(); }
Ok,run一下就会出现一下结果:
这表明第一个Spring应用已经成功。
相关推荐
这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...
《精通Spring 4.x 企业应用开发实战》是一本深入探讨Spring 4.x框架在企业级应用中的实践指南。本书旨在帮助开发者全面理解和掌握Spring框架的核心功能和最佳实践,通过实际项目案例,让读者能够在实际工作中灵活...
**实战Web Service —— 使用Apache CXF开发Web服务的教程** Apache CXF是一个开源的Java框架,用于构建和部署Web服务。本教程将带你深入理解如何利用CXF来开发高效、灵活的Web服务。我们将从基础概念开始,逐步...
在本资源中,我们关注的是"轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发"的源码第五部分。这个主题涉及到Java企业级应用开发中的三个核心框架:Struts、Spring和Hibernate的集成使用。下面将详细阐述...
在项目实战中,开发者需要理解如何配置SSH2的各个组件,包括Struts2的struts.xml配置文件、Spring的applicationContext.xml配置文件和Hibernate的hibernate.cfg.xml配置文件。此外,还需要掌握Action、Service、DAO...
《疯狂JAVA实战演义——源码》是一本深入解析JAVA编程实践的书籍,作者通过精心设计的15个实际应用开发案例,旨在帮助读者逐步掌握JAVA编程的核心技能,并提升其在实际开发中的应用能力。书中的每个实例都包含了完整...
《MLDN——Java Web开发实战经典源码笔记(基础篇)》是一本专注于Java Web开发的实战教程,旨在帮助读者从零开始掌握Web应用的开发技术。这本书通过深入浅出的讲解和丰富的实例代码,全面介绍了Java Web开发的基础...
【标题】"轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第一部分"指的是一个教程或者项目实践,旨在帮助开发者掌握如何在J2EE环境中整合三大主流开源框架:Struts、Spring和Hibernate。...
《SSM框架整合详解——基于spring-mybatis-struts2-master的实战分析》 在Java Web开发领域,SSM(Spring、Struts2、MyBatis)框架的组合被广泛使用,因其灵活性和强大的功能而备受青睐。本篇文章将深入探讨这个...
《轻量级Java+EE企业应用实战——Struts 2 + Spring + Hibernate整合开发》是针对Java企业级应用开发的一本实战指南,旨在帮助开发者掌握使用Struts 2、Spring和Hibernate三大框架进行高效集成开发的技术与技巧。...
首先,书中详细讲解了Spring的核心概念——依赖注入(DI),它是Spring框架的基础。通过DI,我们可以将对象的创建和管理分离,使代码更加灵活和可测试。读者将学习如何使用XML配置、注解以及Java配置来实现DI,以及...
这一章深入介绍了Spring的核心特性——依赖注入(Dependency Injection,简称DI)。依赖注入是一种设计模式,它允许开发者将对象之间的耦合度降低到最低,使得系统更加灵活,易于测试和维护。在这一章中,读者将学习...
总的来说,"ssm框架实战项目——超市订单管理系统"是一个综合性的学习资源,涵盖了SSM框架的各个核心组件,有助于开发者提升Java Web开发技能,理解企业级应用的开发流程和最佳实践。实践中遇到的问题和解决方法,...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...
通过这门“动力节点_王勇_JAVA视频教程_Spring001_Spring概述”,学员不仅能够了解Spring的基本概念,还能掌握其主要特性和应用场景,为后续的Spring实战项目开发做好准备。在学习过程中,建议学员结合实际代码练习...
2. Spring 3的依赖注入,通过XML或注解管理Bean,实现组件化开发。 3. Hibernate的实体类设计和映射配置,以及HQL和Criteria API进行数据库操作。 4. 整合Struts 2和Spring,使用Spring做为Action的容器,提供事务...
《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发》是一本深入探讨Java EE企业级应用开发的经典著作。该书重点介绍了如何利用Struts 2、Spring和Hibernate这三大流行框架进行高效集成,实现轻量...
【轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发】这个主题主要涉及的是Java EE领域中的三大框架——Struts2、Spring3和Hibernate的集成应用,这是构建现代Java后端系统的一种常见方式。这些框架...
本教程将带你深入理解Spring的核心特性——依赖注入(Inversion of Control,简称IOC),并提供快速上手的实战经验。我们将通过SpringGuide.pdf这份文档,一步步解析Spring的IOC原理,并通过实际代码操作,让你迅速...
总的来说,Spring 2.0 Samples文档将引导你通过一系列实战示例,掌握Spring框架的主要功能,包括但不限于依赖注入、AOP、IoC容器、Spring MVC以及数据库操作。通过学习和实践,你将能够熟练地运用Spring进行高效的...