`

Spring开发步骤(入门篇)

阅读更多

Spring开发步骤

1<o:p></o:p>

编写依赖注入类:包含SETTERGETTER,如以下代码:<o:p></o:p>

/**<o:p></o:p>

 * <o:p></o:p>

 */<o:p></o:p>

package com.model;<o:p></o:p>

<o:p> </o:p>

/**<o:p></o:p>

 * @author gyc<o:p></o:p>

 *<o:p></o:p>

 */<o:p></o:p>

public class ModelBean {<o:p></o:p>

      private String msg;<o:p></o:p>

      <o:p></o:p>

      <o:p></o:p>

      public String getMsg() {<o:p></o:p>

           return msg;<o:p></o:p>

      }<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

      public void setMsg(String msg) {<o:p></o:p>

           this.msg = msg;<o:p></o:p>

      }<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

      public void sayHello()<o:p></o:p>

      {<o:p></o:p>

           System.out.println(msg);<o:p></o:p>

      }<o:p></o:p>

<o:p> </o:p>

}<o:p></o:p>

<o:p> </o:p>

2<o:p></o:p>

在配置文件bean.xml配置:<o:p></o:p>

<!---->xml version="1.0" encoding="gb2312"?><o:p></o:p>

<!---->DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><o:p></o:p>

<beans><o:p></o:p>

<!---->其中id="hello"为注入类的唯一标识ID;class="com.model.ModelBean"为注入类所在位置;<property name="msg">为指定注入类的属性,必要与SETTER(如setMsg)命名保持一致,以让Spring可以显式调用; <value>Hello,Spring!value>元素中,Hello,Spring!为注入类需要注入的属性值--><o:p></o:p>

   <bean id="hello" class="com.model.ModelBean"><o:p></o:p>

     <property name="msg"><o:p></o:p>

        <value>Hello,Spring!value><o:p></o:p>

     property><o:p></o:p>

   bean><o:p></o:p>

beans><o:p></o:p>

   <o:p></o:p>

<o:p> </o:p>

3<o:p></o:p>

编写Spring配置类:<o:p></o:p>

/**<o:p></o:p>

 * <o:p></o:p>

 */<o:p></o:p>

package com.spring;<o:p></o:p>

<o:p> </o:p>

import java.io.FileInputStream;<o:p></o:p>

import java.io.InputStream;<o:p></o:p>

<o:p> </o:p>

import org.springframework.beans.factory.BeanFactory;<o:p></o:p>

import org.springframework.beans.factory.xml.XmlBeanFactory;<o:p></o:p>

import org.springframework.core.io.InputStreamResource;<o:p></o:p>

<o:p> </o:p>

/**<o:p></o:p>

 * @author gyc<o:p></o:p>

 *singleton实现,以一次初始化配置文件,提高效率<o:p></o:p>

 */<o:p></o:p>

public class ConfigImp_Spring implements ConfigIf {<o:p></o:p>

<o:p> </o:p>

      /**<o:p></o:p>

       * <o:p></o:p>

       */<o:p></o:p>

      private static ConfigImp_Spring instance=null;<o:p></o:p>

      private static String key="key";//对象锁,考虑到多线程情形<o:p></o:p>

      private BeanFactory beanFactory=null;<o:p></o:p>

      <o:p></o:p>

      private ConfigImp_Spring() {<o:p></o:p>

           // TODO Auto-generated constructor stub<o:p></o:p>

      }<o:p></o:p>

//双检模式<o:p></o:p>

      public static ConfigImp_Spring getInstance(String configxml)<o:p></o:p>

      {<o:p></o:p>

           if(instance==null)<o:p></o:p>

           {<o:p></o:p>

                 synchronized(key)<o:p></o:p>

                 {<o:p></o:p>

                      if(instance==null)<o:p></o:p>

                      {<o:p></o:p>

                            instance=new ConfigImp_Spring();<o:p></o:p>

                            instance.init(configxml);<o:p></o:p>

                      }<o:p></o:p>

                 }<o:p></o:p>

           }<o:p></o:p>

           return instance;<o:p></o:p>

           <o:p></o:p>

      }<o:p></o:p>

      <o:p></o:p>

      public void init(String configxml)<o:p></o:p>

      {<o:p></o:p>

           try<o:p></o:p>

           {<o:p></o:p>

                 InputStream is=new FileInputStream(configxml);<o:p></o:p>

                 InputStreamResource ir=new InputStreamResource(is);<o:p></o:p>

                 beanFactory=new XmlBeanFactory(ir);<o:p></o:p>

                 System.out.println("Now in ConfigImp_Spring,init() ,new a beanFactory!");<o:p></o:p>

           }<o:p></o:p>

           catch(Exception ex)<o:p></o:p>

           {<o:p></o:p>

                 System.out.println("配置文件初始化错误: "+ex);<o:p></o:p>

           }<o:p></o:p>

      }<o:p></o:p>

      public Object getBean(String id) {<o:p></o:p>

           // TODO Auto-generated method stub<o:p></o:p>

           return beanFactory.getBean(id);<o:p></o:p>

      }<o:p></o:p>

<o:p> </o:p>

}<o:p></o:p>

<o:p> </o:p>

4:(并非必要)写一个代理类,对外界提供唯一一个Spring代理入口<o:p></o:p>

/**<o:p></o:p>

 * <o:p></o:p>

 */<o:p></o:p>

package com.spring;<o:p></o:p>

<o:p> </o:p>

/**<o:p></o:p>

 * @author gyc<o:p></o:p>

 *<o:p></o:p>

 */<o:p></o:p>

public class ConfigProxy {<o:p></o:p>

      <o:p></o:p>

      public static Object getBean(String id)<o:p></o:p>

      {<o:p></o:p>

           ConfigIf ci=ConfigImp_Spring.getInstance("bean.xml");<o:p></o:p>

           <o:p></o:p>

           return ci.getBean(id);<o:p></o:p>

      }<o:p></o:p>

<o:p> </o:p>

}<o:p></o:p>

<o:p> </o:p>

5<o:p></o:p>

写一个测试类,用于测试<o:p></o:p>

/**<o:p></o:p>

 * <o:p></o:p>

 */<o:p></o:p>

package com.model;<o:p></o:p>

import com.spring.*;<o:p></o:p>

<o:p> </o:p>

/**<o:p></o:p>

 * @author gyc<o:p></o:p>

 *<o:p></o:p>

 */<o:p></o:p>

public class TestB {<o:p></o:p>

<o:p> </o:p>

      /**<o:p></o:p>

       * @param args<o:p></o:p>

       */<o:p></o:p>

      public static void main(String[] args) {<o:p></o:p>

           // TODO Auto-generated method stub<o:p></o:p>

           ModelBean mb=(ModelBean)ConfigProxy.getBean("hello");<o:p></o:p>

           mb.sayHello();<o:p></o:p>

<o:p> </o:p>

      }<o:p></o:p>

<o:p> </o:p>

}<o:p></o:p>

(,祝您愉快:D)<o:p></o:p>

分享到:
评论

相关推荐

    SpringCloud之Eureka入门篇

    在Eureka入门篇中,我们通常会经历以下几个步骤: 1. **设置Eureka Server**:创建一个Spring Boot项目,添加Eureka Server依赖。在`application.yml`或`application.properties`中配置Eureka Server的相关属性,如...

    Activiti入门篇之二 Spring 与Activiti的入门整合

    "Activiti入门篇之二 Spring 与Activiti的入门整合" 这个标题表明我们将会探讨如何在Spring框架中集成Activiti,一个流行的工作流引擎。这通常涉及设置Activiti的依赖,配置Spring上下文,以及如何在Spring环境中...

    1、Spring Boot干货系列:(一)优雅的入门篇.docx

    为了更好地理解和掌握 Spring Boot,本文将围绕其入门篇进行详细介绍。 #### 二、Spring Boot 的核心价值 1. **自动配置**:Spring Boot 提供了一系列的自动配置选项,这意味着开发者无需编写大量的配置代码,框架...

    Spring_01_入门篇_依赖注入(控制反转)_XML

    在`Spring_01_入门篇_依赖注入(控制反转)_XML`中,我们可以看到一个或多个XML配置文件,它们定义了bean的定义,包括bean的类名、属性以及它们之间的依赖关系。例如: ```xml ``` 在这个例子中,`exampleBean`...

    Spring MVC_快速入门分析篇

    对于初学者,可以从以下步骤开始学习Spring MVC: 1. 了解MVC设计模式。 2. 学习Spring的基础知识,如依赖注入。 3. 熟悉Servlet和JSP。 4. 阅读Spring MVC官方文档和教程。 5. 实践编写简单的Spring MVC项目。 6. ...

    Spring Framework中的AOP编程之入门篇

    本篇文章将深入探讨AOP编程的基础概念,并提供一个简单的入门指南。 一、AOP的基本概念 1. 切面(Aspect):切面是关注点的模块化,它封装了横切关注点。在Spring中,切面可以由一个或多个通知(advises)和一个...

    Spring Batch入门教程篇

    Spring Batch 入门教程篇 Spring Batch 是一个大数据量的并行处理框架,通常用于数据的离线迁移和数据处理,具有事务、并发、流程、监控、纵向和横向扩展等特性,提供统一的接口管理和任务管理。Spring Batch 是 ...

    Spring boot 入门实例

    本篇文章将深入探讨Spring Boot的基础概念,如何设置项目环境,以及如何构建一个简单的入门实例。 ### 一、Spring Boot核心特性 1. **起步依赖(Starter Dependency)**:Spring Boot通过“起步依赖”提供了一种...

    Spring Web Flow权威指南

    根据提供的标题、描述和标签,本篇文章将围绕“Spring Web Flow”这一主题展开,深入探讨其核心概念、架构原理及应用场景等内容。 ### Spring Web Flow概述 Spring Web Flow是Spring Framework的一部分,它为Web...

    struts2+hibernate+spring的几篇入门用网文

    3. "MyEclipse下struts2、spring、hibernate整合 - 技术频道 IT168.mht":这篇文档可能详细描述了在MyEclipse中整合这三大框架的具体步骤,包括添加库、配置web.xml和struts.xml、Spring的bean配置以及Hibernate的...

    struts2 hibernate spring整合入门(附实例源码及jarbao--用户名字段的操作)

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自在不同的层面提供了解决方案,而将它们整合在一起可以构建出强大的企业级应用。本篇内容将深入讲解这三个框架的整合,以及如何实现“用户名字段的...

    spring入门案例所需工具

    本篇文章将通过"spring入门案例所需工具"的介绍,帮助初学者快速掌握Spring的基本概念和使用方法。 首先,让我们了解一下Spring的核心组件和主要功能。Spring框架主要包括以下几个部分: 1. **依赖注入...

    Spring MVC HelloWorld入门例子

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)架构的 Web 应用程序。本篇文章将带你通过一个简单的 "HelloWorld" 示例,深入了解...

    spring boot 学习笔记(入门篇)

    Spring Boot 学习笔记(入门篇) Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板...

    spring-cloud.pdf

    本篇官方文档详细介绍了Spring Cloud的众多特性,以及构建、部署、贡献代码的具体步骤。文档内容涵盖了从项目构建、开发指南、CI/CD集成,到与云服务集成、配置管理、服务发现、断路器设计模式的实现等多个方面。 #...

    Spring Security权限管理开发手册

    ### Spring Security权限管理开发手册...本手册全面覆盖了Spring Security在权限管理和Web应用保护方面的各个方面,不仅适合初学者快速入门,也适合有一定经验的开发者深入了解Spring Security的核心技术和高级特性。

    Struts+Spring+Hibernate整合入门详解

    6. **SpringIDE** (可选): 专门支持Spring开发的Eclipse插件。 7. **Struts**: Struts2的库文件,用于构建Struts应用。 8. **Tomcat**: 一个流行的Servlet容器,用于运行Java Web应用。 9. **MySQL**: 数据库服务器...

Global site tag (gtag.js) - Google Analytics