spring入门配置

来源:互联网 发布:ren域名 编辑:程序博客网 时间:2024/05/04 14:31

就是官网上入门文章的中文版和一些细节的处理

1、下载包http://www.springsource.org/download


2、建立项目将spring压缩包内dist目录下的jar文件考到WEB-INF/lib目录中

一定是dist目录内的,src内的不包含class文件


3、配置spring


web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"       xmlns="http://java.sun.com/xml/ns/javaee"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet>  <display-name>springApp</display-name>  <servlet-name>springApp</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <init-param>   <param-name>contextConfigLocation</param-name>   <param-value>/WEB-INF/servlet-context.xml</param-value>  </init-param> </servlet> <servlet-mapping>  <servlet-name>springApp</servlet-name>  <url-pattern>/</url-pattern> </servlet-mapping></web-app>

servlet类

package xyz.sample.baremvc; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HomeController {     @RequestMapping(value = "/")    public String home() {        System.out.println("HomeController: Passing through...");        return "/home.jsp";    }}

servlet-context.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:mvc="http://www.springframework.org/schema/mvc"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="        http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">    <context:component-scan base-package="xyz.sample.baremvc" />    <mvc:annotation-driven /> </beans>

可能会报的错:

(1)、org.apache.commons.logging.LogFactory

去http://commons.apache.org/下一个commons-logging.jar

(2)、引用不到spring的类,考的不是dist目录里的jar包


4、配置ViewResolver策略

其实就是在你的@controller的返回值上做一些处理

package xyz.sample.baremvc;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configurationpublic class AppConfig {@BeanViewResolver viewResolver(){InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/");resolver.setSuffix(".jsp");return resolver;}}

可能会报的错:

(1)、CGLIB is required to process

去http://sourceforge.net/projects/cglib/files/下载最新版的cglig包

(2)、NoClassDefFoundError: org/objectweb/asm/Type

去http://forge.ow2.org/project/showfiles.php?group_id=23&release_id=3334下载asm包

(3)、log4j缺少jar包或log4j的properties文件没有初始化


5、更新HomeController做一个参数比较

package xyz.sample.baremvc; import java.util.Comparator;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;@Controllerpublic class HomeController {     @Autowired    Comparator<String> comparator;    @RequestMapping(value = "/")    public String home() {        System.out.println("HomeController: Passing through...");        return "home";    }        @RequestMapping(value = "/compare",method = RequestMethod.GET)    public String compare(@RequestParam("input1")String input1,@RequestParam("input2")String input2,Model model){    int result = comparator.compare(input1, input2);    String inEnglish = (result < 0) ? "less than" : (result > 0 ? "greater than" : "equal to");             String output = "According to our Comparator, '" + input1 + "' is " + inEnglish + "'" + input2 + "'";         model.addAttribute("output", output);        return "compareResult";    }}



6、扩展Comparator类的方法

package xyz.sample.baremvc; import java.util.Comparator;import org.springframework.stereotype.Service; @Servicepublic class CaseInsensitiveComparator implements Comparator<String> {    public int compare(String s1, String s2) {        assert s1 != null && s2 != null;        return String.CASE_INSENSITIVE_ORDER.compare(s1, s2);    }}


7、做一个返回页面compareResult.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ page session="false" %><html>    <head>        <title>Result</title>    </head>    <body>        <h1><c:out value="${output}"></c:out></h1>    </body></html>