`

Spring实战篇(一) —— XML注入(基础)

阅读更多

在开始第一个Spring应用前,让我们先做如下一些准备:
JDK
1.5以上)
Eclipse
Maven
m2eclipse插件(可选,如果熟悉Maven可以很快的在项目中加入所需的Spring Jar包,如果想用Maven,那就自学一下,只要学一点基础就可以了)

 

Ok,让我们开始吧。首先,在Eclipse中创建一个Maven ProjectJava Project,如果创建Maven Project,在第一个页面直接勾选Create a simple project即可:


 

然后点击next,下一步中的输入任意Group IdArtifact 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以上并且Springjar包之间的版本号最好保持一致。

  

一切准备就绪,下面就开始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(&quot;Engine one lauch!!&quot;); 
    } 

    @Override 
    public void showInfo() 
    { 
        System.out.println(&quot;Engine is One!!&quot;); 
    } 
} 

 

 

  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(&quot;Wheel is No.1!&quot;); 
    } 
} 

 

 

好吧,上面的代码很简单,现在我们来构架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管理的pojoSpring通过Ioc将这些bean的成员填充进去。

 

beans标签会有若干个命名空间的别名及Location定义,这些在初学的时候可以不必太关心,copy下即可。其中别名代表在这个配置文件中需要用到的模块,比如context,aop,jdbc等等。xsi:schemaLocation则指定这些模块的xsd文件所在url,这些文件主要用于提示和验证。 

 

beans标签内会包含若干个bean标签,每一个bean标签就代表一个Spring bean。其中id为唯一表示,通常用于成员依赖(reference)和取到这个beanclass指明这个bean关联的pojo,一般情况下,每一个bean都必须指明其class

 

bean标签的内部是property标签,每一个property标签都代表这个bean关联的pojo中的一个成员,简单类型,如基本类型、基本类型的包装类、String等可以通过value属性制定,复杂类型一般通过ref属性找到对应的bean进行注入(当然像内部bean这样的方法也可以)。

 

最后说一下Car中的wheels成员,这个成员是一个List类型,在指定这个property的时候,可以嵌套使用list标签,其内部可以使用refvalue标签。

 

接下来就可以运行一下第一个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(); 
    } 

 

 Okrun一下就会出现一下结果:

 这表明第一个Spring应用已经成功。

  • 大小: 15.3 KB
  • 大小: 6.6 KB
  • 大小: 29.7 KB
分享到:
评论

相关推荐

    Java EE 框架整合开发⼊⻔到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf

    这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...

    实战Web Service —— 使用Apache CXF开发Web服务的教程

    **实战Web Service —— 使用Apache CXF开发Web服务的教程** Apache CXF是一个开源的Java框架,用于构建和部署Web服务。本教程将带你深入理解如何利用CXF来开发高效、灵活的Web服务。我们将从基础概念开始,逐步...

    轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第五部分

    在本资源中,我们关注的是"轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发"的源码第五部分。这个主题涉及到Java企业级应用开发中的三个核心框架:Struts、Spring和Hibernate的集成使用。下面将详细阐述...

    Struts2+Spring+Hibernate框架技术与项目实战——上

    在项目实战中,开发者需要理解如何配置SSH2的各个组件,包括Struts2的struts.xml配置文件、Spring的applicationContext.xml配置文件和Hibernate的hibernate.cfg.xml配置文件。此外,还需要掌握Action、Service、DAO...

    疯狂JAVA实战演义——源码

    《疯狂JAVA实战演义——源码》是一本深入解析JAVA编程实践的书籍,作者通过精心设计的15个实际应用开发案例,旨在帮助读者逐步掌握JAVA编程的核心技能,并提升其在实际开发中的应用能力。书中的每个实例都包含了完整...

    MLDN——Java Web 开发实战经典源码笔记(基础篇)|

    《MLDN——Java Web开发实战经典源码笔记(基础篇)》是一本专注于Java Web开发的实战教程,旨在帮助读者从零开始掌握Web应用的开发技术。这本书通过深入浅出的讲解和丰富的实例代码,全面介绍了Java Web开发的基础...

    轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第一部分

    【标题】"轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第一部分"指的是一个教程或者项目实践,旨在帮助开发者掌握如何在J2EE环境中整合三大主流开源框架:Struts、Spring和Hibernate。...

    spring-mybatis-struts2-master ——demo

    《SSM框架整合详解——基于spring-mybatis-struts2-master的实战分析》 在Java Web开发领域,SSM(Spring、Struts2、MyBatis)框架的组合被广泛使用,因其灵活性和强大的功能而备受青睐。本篇文章将深入探讨这个...

    轻量级Java+EE企业应用实战——Struts+2+Spring+Hibernate整合开发电子书3.pdf

    《轻量级Java+EE企业应用实战——Struts 2 + Spring + Hibernate整合开发》是针对Java企业级应用开发的一本实战指南,旨在帮助开发者掌握使用Struts 2、Spring和Hibernate三大框架进行高效集成开发的技术与技巧。...

    精通Spring 4.x 企业应用开发实战 pdf 附source

    首先,书中详细讲解了Spring的核心概念——依赖注入(DI),它是Spring框架的基础。通过DI,我们可以将对象的创建和管理分离,使代码更加灵活和可测试。读者将学习如何使用XML配置、注解以及Java配置来实现DI,以及...

    精通Spring--Java轻量级架构开发实践.pdf

    这一章深入介绍了Spring的核心特性——依赖注入(Dependency Injection,简称DI)。依赖注入是一种设计模式,它允许开发者将对象之间的耦合度降低到最低,使得系统更加灵活,易于测试和维护。在这一章中,读者将学习...

    ssm框架实战项目——超市订单管理系统

    总的来说,"ssm框架实战项目——超市订单管理系统"是一个综合性的学习资源,涵盖了SSM框架的各个核心组件,有助于开发者提升Java Web开发技能,理解企业级应用的开发流程和最佳实践。实践中遇到的问题和解决方法,...

    Spring.3.x企业应用开发实战(完整版).part2

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    动力节点_王勇_JAVA视频教程_Spring001_Spring概述

    通过这门“动力节点_王勇_JAVA视频教程_Spring001_Spring概述”,学员不仅能够了解Spring的基本概念,还能掌握其主要特性和应用场景,为后续的Spring实战项目开发做好准备。在学习过程中,建议学员结合实际代码练习...

    轻量级Java_EE企业应用实战_Struts_2+Spring_3+Hibernate整合开发_第3版

    2. Spring 3的依赖注入,通过XML或注解管理Bean,实现组件化开发。 3. Hibernate的实体类设计和映射配置,以及HQL和Criteria API进行数据库操作。 4. 整合Struts 2和Spring,使用Spring做为Action的容器,提供事务...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书2

    《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发》是一本深入探讨Java EE企业级应用开发的经典著作。该书重点介绍了如何利用Struts 2、Spring和Hibernate这三大流行框架进行高效集成,实现轻量...

    [轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发

    【轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发】这个主题主要涉及的是Java EE领域中的三大框架——Struts2、Spring3和Hibernate的集成应用,这是构建现代Java后端系统的一种常见方式。这些框架...

    spring_闪电上手

    本教程将带你深入理解Spring的核心特性——依赖注入(Inversion of Control,简称IOC),并提供快速上手的实战经验。我们将通过SpringGuide.pdf这份文档,一步步解析Spring的IOC原理,并通过实际代码操作,让你迅速...

    Spring_2.0_Samples

    总的来说,Spring 2.0 Samples文档将引导你通过一系列实战示例,掌握Spring框架的主要功能,包括但不限于依赖注入、AOP、IoC容器、Spring MVC以及数据库操作。通过学习和实践,你将能够熟练地运用Spring进行高效的...

    Spring3.x企业应用开发实战(完整版) part1

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

Global site tag (gtag.js) - Google Analytics