最简单的spring入门示例

应群里一位朋友的要求,写一个最简单的spring示例,使用spring的MVC,并应用了spring的依赖注入 ,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务管理,远程调用,代理等这些功能)

spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解。

首先,要在web.xml中配置DispatcherServlet,它是作为Spring MVC的前端控制器.必须在web.xml中配置好,如下

 

< servlet >
     
< servlet-name > ntx </ servlet-name >
     
< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
     
< load-on-startup > 1 </ load-on-startup >
</ servlet >

实际上,spring的配置文件可以分切到多个xml文件,我们这个简单的示例就把它配置到ntx.xml中

 

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC
    "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd"
>

< beans
  
default-autowire ="no"
  default-lazy-init
="false"
  default-dependency-check
="none"
>

    
< bean  id ="loginService"  class ="ntx.service.serviceimpl.LoginServiceImpl" />
        
    
< bean   id ="loginController"  class ="ntx.controller.LoginController" >
        
< property  name ="loginService" >
            
< ref  bean ="loginService" />
        
</ property >
        
< property  name ="gotoUrl" >
            
< value > /showResult.jsp </ value >
        
</ property >
    
</ bean >
    
    
< bean  id ="SimpleUrlHandlerMapping"  class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
        
< property  name ="mappings" >
            
< props >
                
< prop  key ="/userLogin.do" > loginController </ prop >
            
</ props >
        
</ property >
    
</ bean >
</ beans >

 

配置好上面的这些后,要在WEB-INF下要建立ntx-servlet.xml如下:

 

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
    
< bean  id ="viewResolver"  class ="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        
< property  name ="viewClass" >< value > org.springframework.web.servlet.view.JstlView </ value ></ property >
        
< property  name ="prefix" >< value ></ value ></ property >
        
< property  name ="suffix" >< value ></ value ></ property >
        
    
</ bean >
</ beans >

 

接下来,要指明哪些请求将交给spring的DispatcherServlet来处理,所以在web.xml中添加<servlet-mapping>

< servlet-mapping >
        
< servlet-name > ntx </ servlet-name >
        
< url-pattern > *.do </ url-pattern >
</ servlet-mapping >

为了能正确载入DispatcherServlet等配置文件,我们要在web.xml中配置一个上下文载入器ContextLoaderListener或者ContextLoaderServlet,我们这里为了兼容版本较低的Serlvet容器(实际上我采用的2.4),采用第二种:

 

< servlet >
     
< servlet-name > context </ servlet-name >
     
< servlet-class > org.springframework.web.context.ContextLoaderServlet </ servlet-class >
     
< load-on-startup > 100 </ load-on-startup >
</ servlet >
这样就全部配置完毕了,当然,上面的ntx.xml是我在项目完成以后才配置完成的,这里不再多讲,有bean元素的配置大家可以参考有关资料理解,很容易理解的,下面再给出完整的web.xml配置以及java
<? xml version="1.0" encoding="UTF-8" ?>
< web-app  version ="2.4"  
    xmlns
="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>

   
< context-param >
       
< param-name > contextConfigLocation </ param-name >
       
< param-value > /WEB-INF/ntx.xml </ param-value >
   
</ context-param >
   
< servlet >
     
< servlet-name > ntx </ servlet-name >
     
< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
     
< load-on-startup > 1 </ load-on-startup >
   
</ servlet >
   
< servlet >
     
< servlet-name > context </ servlet-name >
     
< servlet-class > org.springframework.web.context.ContextLoaderServlet </ servlet-class >
     
< load-on-startup > 100 </ load-on-startup >
   
</ servlet >
   
< servlet-mapping >
        
< servlet-name > ntx </ servlet-name >
        
< url-pattern > *.do </ url-pattern >
    
</ servlet-mapping >
    
< welcome-file-list >
        
< welcome-file > index.jsp </ welcome-file >
    
</ welcome-file-list >
</ web-app >
根据ntx.xml知道,总共有三个java文件,LoginController.java是控制器,继承了最简单的Controller(实际上spring有很多控制器供我们选择),接下来是一个简单控制器的源码
/**
 * program NtxSpring
 * date 2006-9-27
 * 
@author 张逸轩
 
*/

package  ntx.controller;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.springframework.web.servlet.ModelAndView;
import  org.springframework.web.servlet.mvc.Controller;

import  ntx.service.LoginService;

/**@spring.bean id="loginController"
 * @spring.property name="gotoUrl" value="/showResult.jsp"
 * @spring.property name="loginService" ref="loginService"
 
*/



/**
 * 作用描述:spring示例
 * 
 * 说明:spring示例,以上的spring标签方便使用xdoclet生成spring配置文件
 * 
 * 
@author 张逸轩
 * Copyright(c)2006 cleverfox 
 
*/

public   class  LoginController  implements  Controller {

    
private LoginService loginService ;
    
private String gotoUrl;
    
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
        String userName 
= request.getParameter("userName");
        
this.getUserInfo(request, userName);
        
        
return new ModelAndView(this.getGotoUrl());
    }

    
    
private void getUserInfo(HttpServletRequest request,String userName){
        String userInfo 
= loginService.getUserInfo(userName);
        request.setAttribute(
"userInfo", userInfo);
    }

    
    
public String getGotoUrl() {
        
return gotoUrl;
    }

    
public void setGotoUrl(String gotoUrl) {
        
this.gotoUrl = gotoUrl;
    }

    
public LoginService getLoginService() {
        
return loginService;
    }

    
public void setLoginService(LoginService loginService) {
        
this.loginService = loginService;
    }

    
}

还有service层的接口以及实现,较简单,
package  ntx.service;
public   interface  LoginService  {

    
public String getUserInfo(String userName);
}
package  ntx.service.serviceimpl;

import  ntx.service.LoginService;

public   class  LoginServiceImpl  implements  LoginService  {
    
public String getUserInfo(String userName){
        
        
return "你的名字是:" + userName;
    }

}

好了,最后是两个jsp文件,一个index.jsp用来显示一个表单,输入名字,一个showResult.jsp用来显示结果,只贴出相关的代码

<body>
    This is my Test Spring page. <br>
    <div>
     <form method="post" action="/userLogin.do">
      <input type="text" name="userName" size="30"/><br/>
      <input type="submit" value="提交"/>
     </form>
    </div>
  </body>

<body>
    This is the Result: <br>
 <c:out value="${userInfo}" default="没有结果"/>
  </body>

发布到tomcat或者其它Servlet容器可以正常使用,提交以后将显示:

This is the Result:

你的名字是:gavin

 

这是一个简单的入门示例,希望有助于刚接触spring的人加深对spring的理解 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值