SpringMVC 注解使用说明

1) controller 使用与解释

package com.qs.controller;

import com.qs.entity.CategoryFilter;
import com.qs.service.ICategoryFilterService;
import com.qs.service.impl.CategoryFilterServiceImpl;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.ui.Model;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by guonan on 15/8/31.
 */

/**
 * 使用 @Controller 之后,则该对象交给 Spring 管理, 会产生一个驼峰命名 standardController 的 bean。
 * 这个命名根据 StandardController 的类名获得
 *
 * 如果使用下面的写法
 * @Controller("standardController") || @Controller(name = "standardController")
 * 则 bean 的名称取 「“”」里的值
 *
 * @Scope("prototype")表示:
 * 非单例模式, 每次请求都将单独建立一个 StandardController 对象可以保证线程(影响数据)相对安全
 *
 * 若不使用该注释,则表示:
 * scope 是单例模式(scope="singleton"), 只会创建一个 StandardController 对象,  * 每次访问都是同一 StandardController 对象, 线程(影响数据)不安全
 *
 */
@Controller
@Scope("prototype")
public class StandardController
{
    /**
     * 建议使用@Resource(低耦合), 不推荐 @Autowired(该注释方法侵入性强)
     *
     * @Resource 装配顺序:
     * 1) 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
     * 2) 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
     * 3) 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
     * 4) 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配(见2);
     *    如果没有匹配,则回退为一个原始类型(UserDao)进行匹配,如果匹配则自动装配;
     *
     * @Resource(name = "iCategoryFilterService")
     * 在 StandardController 声明的 iCategoryFilterService 类型必须是    *「 ICategoryFilterService || ICategoryFilterServiceImpl 」
     * 否则会由于类型不一致而无法注入
     *
     * 程序中使用了 @@Resource(name = "iCategoryFilterService"), 装配流程如下:
     * 1) Spring 实例化一个名为 iCategoryFilterService 的bean
     * 2) 当 Spring 发现 StandardController 的成员变量 iCategoryFilterService 上有 @Resource 注释时
     * 3) Spring 会把名为 iCategoryFilterService 的bean 注入给 iCategoryFilterService 这个成员变量,      *    完成依赖注入
     *
     * PS. 如果没有 Spring 还像使用 iCategoryFilterService 这个成员变量的做法则是传统的new方法
     *     ICategoryFilterService iCategoryFilterService = new ICategoryFilterServiceImpl();
     *     Spring 的依赖注入完成了 IoC(控制反转)的过程,在这里控制反转的意思指的是:
     *     a. StandardController 想使用成员变量 iCategoryFilterService , 本应该去主动 new 出对象
     *     b. 使用 Spring 之后, 创建实力的工作已经交给 Spring , 而真正使用者(StandardController)
     *        则需要让 Spring 把已经实例化完成成员变量(iCategoryFilterService)交给自己使用
     *
     * 依赖注入(DI)和控制反转(IoC)其实是要表达的是一个意思, 但是个人感觉依赖注入(DI)更为准确的概括了上述过程。
     *
     */
    @Resource(name = "iCategoryFilterService")
    ICategoryFilterService iCategoryFilterService;

    @RequestMapping(value = "/get/all", method = RequestMethod.GET)
    //注释 @ResponseBody 的使用, 可以将 Map 以流的方式在浏览器中直接显示出来
    @ResponseBody
    public Map<String,Object> getAll(Model model)
    {
        List<CategoryFilter> list = iCategoryFilterService.getAll();
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("1",list);

        return map;
    }
}

2)service

3) DAO

时间: 2024-10-13 23:29:45

SpringMVC 注解使用说明的相关文章

eclipse中导入jdk源码、SpringMVC注解@RequestParam、SpringMVC文件上传源码解析、ajax上传excel文件

eclipse中导入jdk源码:http://blog.csdn.net/evolly/article/details/18403321, http://www.codingwhy.com/view/799.html. ------------------------------- SpringMVC注解@RequestParam:http://825635381.iteye.com/blog/2196911. --------------------------- SpringMVC文件上传源

SpringMVC注解和Freemarker整合使用全步骤

SpringMVC现在是比较热门的一种框架了,使用起来感觉还是很不错的,现在我分享一下集体的配置和使用,希望对学习SpringMVC的朋友有用.一.首先我们做准备工作,下载Spring包,下载Freemarker包.二.配置web.xml. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

springMVC 注解版

关于Spring MVC注解 @Transactional 事务标签 @InitBinder 标签 分类: Java开发 源代码分享2012-06-14 10:59 7721人阅读 评论(2) 收藏 举报 springmvcjavaemailpathstring 主要用到了spring-aop-2.5.6.jar的AOP支持包! 之前我们在AccountService中加入了注解@Transactional标签,但是要想要真正发挥事务作用,还需要一些配置. 主要需要调整dao.xml文件 dao

SpringMVC注解启用

本文是我在学习网络视频SpringMVC的过程中写下的.感谢发布视频的各位前辈 下面讲解SpringMVC注解启用的几个关键步骤: 首先需要加载配置文件(如果使用本人的代码请自己定义路径) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://

springMVC(注解版笔记)

springMVC(注解版) 较之于非注解版本,发生一下变化: 1.配置文件需要配置的标签有: <!-- 包的扫描,此包下面的所有包都启用注解 --> <context:component-scan base-package="com.mindreader.springmvc.controller" /> <!-- 开启注解 --> <!--包的映射--> <bean class="org.springframework.

springmvc 注解、json的正确配置

正确的springmvc配置如下: <?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.sprin

Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇) 本文主要内容: (1)SpringMVC校验 (2)数据回显 (3)异常处理器 (4)图片上传 (5)Json数据交互 (6)支持RESTful 1.SpringMVC校验 1.1校验理解 项目中,通常使用较多的是前端的校验,比如页面中js校验.对于安全要求较高的

SpringMVC注解汇总(二)-请求映射规则

接上一节SpringMVC注解汇总-定义 讲到Httpy请求信息 URL路径映射 1)普通URL路径映射 @RequestMapping(value={"/test1", "/user/create"}): 多个URL路径可以映射到同一个处理器的功能处理方法. 2)URI模板模式映射@RequestMapping(value="/users/{userId}"): {×××}占位符, 请求的URL可以是 "/users/123456&q

一篇非常经典的springMVC注解实现方式详解

今天公司让搭建个springMVC的注解框架,研究了好半天,网络搜罗了半天,好不容易找到篇,拿来分享下: 原文出处:http://www.itxxz.com/a/kuangjia/2014/0531/4.html 大家好,我是IT学习者的螃蟹,前两天写了一个spring MVC的注解实例,目前看来下载使用的人数已有不少,使用过程中也有不少人对其中的配置存有一些不解和疑问,在这里螃蟹就那个实例中的spring配置详细说明一下,算作是对spring注解模式的一次全方位解析.         在实例中