Spring开发步骤
步1:<o:p></o:p>
编写依赖注入类:包含SETTER,GETTER,如以下代码:<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>
分享到:
相关推荐
在Eureka入门篇中,我们通常会经历以下几个步骤: 1. **设置Eureka Server**:创建一个Spring Boot项目,添加Eureka Server依赖。在`application.yml`或`application.properties`中配置Eureka Server的相关属性,如...
"Activiti入门篇之二 Spring 与Activiti的入门整合" 这个标题表明我们将会探讨如何在Spring框架中集成Activiti,一个流行的工作流引擎。这通常涉及设置Activiti的依赖,配置Spring上下文,以及如何在Spring环境中...
为了更好地理解和掌握 Spring Boot,本文将围绕其入门篇进行详细介绍。 #### 二、Spring Boot 的核心价值 1. **自动配置**:Spring Boot 提供了一系列的自动配置选项,这意味着开发者无需编写大量的配置代码,框架...
在`Spring_01_入门篇_依赖注入(控制反转)_XML`中,我们可以看到一个或多个XML配置文件,它们定义了bean的定义,包括bean的类名、属性以及它们之间的依赖关系。例如: ```xml ``` 在这个例子中,`exampleBean`...
对于初学者,可以从以下步骤开始学习Spring MVC: 1. 了解MVC设计模式。 2. 学习Spring的基础知识,如依赖注入。 3. 熟悉Servlet和JSP。 4. 阅读Spring MVC官方文档和教程。 5. 实践编写简单的Spring MVC项目。 6. ...
本篇文章将深入探讨AOP编程的基础概念,并提供一个简单的入门指南。 一、AOP的基本概念 1. 切面(Aspect):切面是关注点的模块化,它封装了横切关注点。在Spring中,切面可以由一个或多个通知(advises)和一个...
Spring Batch 入门教程篇 Spring Batch 是一个大数据量的并行处理框架,通常用于数据的离线迁移和数据处理,具有事务、并发、流程、监控、纵向和横向扩展等特性,提供统一的接口管理和任务管理。Spring Batch 是 ...
本篇文章将深入探讨Spring Boot的基础概念,如何设置项目环境,以及如何构建一个简单的入门实例。 ### 一、Spring Boot核心特性 1. **起步依赖(Starter Dependency)**:Spring Boot通过“起步依赖”提供了一种...
根据提供的标题、描述和标签,本篇文章将围绕“Spring Web Flow”这一主题展开,深入探讨其核心概念、架构原理及应用场景等内容。 ### Spring Web Flow概述 Spring Web Flow是Spring Framework的一部分,它为Web...
3. "MyEclipse下struts2、spring、hibernate整合 - 技术频道 IT168.mht":这篇文档可能详细描述了在MyEclipse中整合这三大框架的具体步骤,包括添加库、配置web.xml和struts.xml、Spring的bean配置以及Hibernate的...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自在不同的层面提供了解决方案,而将它们整合在一起可以构建出强大的企业级应用。本篇内容将深入讲解这三个框架的整合,以及如何实现“用户名字段的...
本篇文章将通过"spring入门案例所需工具"的介绍,帮助初学者快速掌握Spring的基本概念和使用方法。 首先,让我们了解一下Spring的核心组件和主要功能。Spring框架主要包括以下几个部分: 1. **依赖注入...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)架构的 Web 应用程序。本篇文章将带你通过一个简单的 "HelloWorld" 示例,深入了解...
Spring Boot 学习笔记(入门篇) Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板...
本篇官方文档详细介绍了Spring Cloud的众多特性,以及构建、部署、贡献代码的具体步骤。文档内容涵盖了从项目构建、开发指南、CI/CD集成,到与云服务集成、配置管理、服务发现、断路器设计模式的实现等多个方面。 #...
### Spring Security权限管理开发手册...本手册全面覆盖了Spring Security在权限管理和Web应用保护方面的各个方面,不仅适合初学者快速入门,也适合有一定经验的开发者深入了解Spring Security的核心技术和高级特性。
6. **SpringIDE** (可选): 专门支持Spring开发的Eclipse插件。 7. **Struts**: Struts2的库文件,用于构建Struts应用。 8. **Tomcat**: 一个流行的Servlet容器,用于运行Java Web应用。 9. **MySQL**: 数据库服务器...