欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

抽丝剥茧JavaWeb应用之扯扯springMVC常用注解

程序员文章站 2022-06-14 19:38:53
...

本文主要扯一扯工作中经常使用的SpringMVC注解和mybatis批量更新Oracle。本文使用的springmvc的版本是4.1.4.RELEASE

1.项目经常性使用的SpringMVC注解有:@Controller (标识这个类是一个控制类,用于映射外部的HTTP请求,只能作用ElementType.TYPE上)和 @RequestMapping(用于标识匹配方法的路径) 这两个都是MVC基于DispatcherServlet分发HTTP请求的基础。参见

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-introduction

 @RestController注解 = @Controller + @ResponseBody

参见源码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {

	/**
	 * The value may indicate a suggestion for a logical component name,
	 * to be turned into a Spring bean in case of an autodetected component.
	 * @return the suggested component name, if any
	 * @since 4.0.1
	 */
	String value() default "";

}

 @RequestParam 用于标识请求参数名称(value())及是否需要(required()),它们均有默认值。

 @RequestMapping 可以作用ElementType.METHOD, ElementType.TYPE上。可设置的元素如下所示:

	@ResponseBody
	@RequestMapping(name = "abc" ,
			value = "/abc" , // 映射路径
			method = { RequestMethod.GET , RequestMethod.POST},  //请求方法
			headers = "content-type=text/html, //请求头的文档类型,不能设置编码类型,否则会报错
			params="!myParam", //方法接受的参数中不能存在myParam参数名
			consumes = {"text/html", "application/json"},  //方法接受的数据格式
			produces = "application/json" //方法返回json格式
			)
	public ResultMessageDTO demo1(){
		return ResultCodeUtil.genResult(ReturnCodeEnum.SUCC , new MapData("hello", "springmvc"));
	}

 @RequestBody:主要参见官方文档 :

@RequestBody 
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-requestbody

 指示方法参数应绑定到HTTP请求正文的值。通过使用HttpMessageConverter将请求体转换为method参数。 HttpMessageConverter负责将HTTP请求消息转换为对象,并从对象转换为HTTP响应体。在项目中可以这样配置

	<bean id="mappingJackson2HttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
				<value>text/json;charset=UTF-8</value>
				<value>application/json;charset=UTF-8</value>
			</list>
		</property>
	</bean>
	<!-- 采用SpringMVC自带的JSON转换工具,支持@ResponseBody注解 -->
	<bean
		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="messageConverters">
			<list>
				<ref bean="mappingJackson2HttpMessageConverter" />    <!-- JSON转换器 -->
			</list>
		</property>
	</bean>

 HttpMessageConverter 是一个策略接口,实现此接口的方法使将HTTP请求到响应的一个转换器。

 

2.mybatis批量更新的一种方法:

<update id="updateAA" parameterType="java.util.List">
	<foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">  
                update t_aa   
                <set>  
                  a = #{item.a , jdbcType=VARCHAR} ,
                  m = sysdate ,
                  b = #{item.b , jdbcType=VARCHAR}
                </set>  
                where c = #{item.c ,jdbcType=VARCHAR}  
                and d = #{item.d,jdbcType=VARCHAR}
         </foreach>  
</update

 以上。