springmvc注解

eg:

@Controller
public class HSRIndexGeoAction extends HSRQueryBaseAction {

	private static final LogUtil LOG = LogUtil
			.getLogger(HSRIndexGeoAction.class);

	@RequestMapping(value = "/HighSpeedRail/GIS/IndexGeo")
	@ResponseBody
	public void business(HttpServletRequest request,
			HttpServletResponse response) {
		LOG.info("#HSRAssurance#HSRIndexGeoAction#business#Begin");
		commonBusiness(request, response, IHSRGeoQueryService.class);
		LOG.info("#HSRAssurance#HSRIndexGeoAction#business#end");
	}
}

注解:
@Controller
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象
分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器

@RequestMapping(value = "/HighSpeedRail/GIS/IndexGeo")

 可以使用@RequestMapping 来映射URL 到控制器类,或者是到Controller 控制器的处理方法上。当@RequestMapping 标记在Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址都是相对于类上的@RequestMapping 而言的;当Controller 类上没有标记@RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/ ”而言的。

@ResponseBody
Spring 3.X系列增加了新注解@ResponseBody,@RequestBody

@RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。
@ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

HttpMessageConverter接口,需要开启<mvc:annotation-driven  />。
AnnotationMethodHandlerAdapter将会初始化7个转换器,可以通过调用AnnotationMethodHandlerAdapter的getMessageConverts()方法来获取转换器的一个集合 List<HttpMessageConverter>
引用
ByteArrayHttpMessageConverter
StringHttpMessageConverter
ResourceHttpMessageConverter
SourceHttpMessageConverter
XmlAwareFormHttpMessageConverter
Jaxb2RootElementHttpMessageConverter
MappingJacksonHttpMessageConverter


可以理解为,只要有对应协议的解析器,你就可以通过几行配置,几个注解完成协议——对象的转换工作!

PS:Spring默认的json协议解析由Jackson完成。

2017年7月15日续:
一、springmvc常用注解之@Controller和@RequestMapping:
对于各种注解而言,排第一的当然是“@Controller”,表明某类是一个controller。
“@RequestMapping”请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求。
参考:https://my.oschina.net/zhdkn/blog/316530

二、Spring注解@Component、@Repository、@Service、@Controller区别
今天把以前做的一个项目翻出来看一下发现用·@Component标记一个组件,而网上有的用@Service标记组件,我晕就查了一下资料:
spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。
在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。
所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

1.    @Service  
2.    public class VentorServiceImpl implements iVentorService {     
3.    }  
4.    @Repository  
5.    public class VentorDaoImpl implements iVentorDao {   
6.    } 

一些参考文档:

http://www.imooc.com/article/1392

http://elim.iteye.com/blog/1753271

http://blog.csdn.net/chunqiuwei/article/details/16115135

http://snowolf.iteye.com/blog/1628861

http://www.cnblogs.com/chenssy/archive/2013/03/17/2964593.html

https://my.oschina.net/HeliosFly/blog/205343

http://elim.iteye.com/blog/1750680

http://www.cnblogs.com/hustyangli/archive/2008/09/01/1281319.html

http://www.cnblogs.com/fangqi/archive/2012/10/28/2743108.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值