码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC 注解使用说明

时间:2015-09-17 21:34:23      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

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

SpringMVC 注解使用说明

标签:

原文地址:http://www.cnblogs.com/guonan/p/4817553.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!