常用注解

@Controller (注入service层)

说明此类是个控制器类,开发者自定义一个Controller类实现Controller接口,配合@RequestMapping注解,可以在一个类中定义多个接口;在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解

@RestController

相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

@Service (注入dao层)

说明此类是个服务类,标注在实现类上,@Service是把spring容器中的bean进行实例化,也就是等同于new操作

@Repository (实现dao访问)

说明此类是个数据访问层类,

@Component

标注一个类为Spring容器的Bean,(把普通pojo实例化到spring容器中,相当于配置文件中的

@RequestMapping

用于处理请求地址映射,可用于类或方法上,用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径,不用于类上则所有的路径都是绝对路径

@GetMapping

​ 用于将HTTP get请求映射到特定处理程序

​ @GetMapping = @RequestMapping(method = RequestMethod.GET)

@PostMapping

​ 用于将HTTP post请求映射到特定处理程序

​ @PostMapping = @RequestMapping(method = RequestMethod.POST)

@Autowired

是spring的注解,@resource是java的注解

如果更换ioc容器,前者用不了

可以对成员变量、方法和构造函数进行标注,来完成自动装配/依赖注入的工作,@Autowired是根据类型type进行自动装配/注入的

@Qualifier可以出现任何@Autowired能够出现的地方,与之配套使用。直接标注在@Autowired注入的Bean上,为其明确指定注入某个。Bean@Qualifier(value=”xxx”)

@Resource

用来实现依赖注入,默认按byName自动注入

@ResponseBody

ResponseBody注解的作用是将controller的方法返回的对象 通过适当的转换器 转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据。

需要注意,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,它的效果等同于通过response对象输出指定格式的数据。

@RequestParam(“”)

在controller层@requestMapping结合使用,@RequestParam注解的 value 属性值必须对应上html表单中的元素name,否则直接报错400,因为required 属性默认为true ,不写将会使用默认值;

@RequestParam注解加上required=false,尽管没对应上然而不会报错,而是获取值为null;

若不使用@RequestParam注解,直接接收,则要求controller方法中的参数名称要跟form中name名称一致,使用该注解只是方便随意取参数名称,不过value属性还是要与name一致。

mybatis中@param(“”)

在dao、mapper层与@Repository结合使用,传递单个参数时不用,传递多个参数时最好使用,都不用也可以嘻嘻

mybatis xml文件中parameterType、resultType和resultMap

resultType属于自动映射到javabean,而resultMap是手动映射到Javabean的,其中简单的映射关系可以使用resultType,复杂映射关系的推荐使用resultMap。使用resultMap需要先在mapper.xml中定义resultMap。而resultType则无需定义。

parameterType:如果传入的参数类型大于1种,且参数个数大于等于2,不要写parameterType不然会报错;parameterType 不写也可以,mybatis会自动识别,但是为了规范代码可读性,可以写一下,嘻嘻

解析传入参数有2种 #{} 与${} :

“#”: 会把你传入的参数当成字符串解析,也就是你无论传入什么,都会被加上’’号

“$” : 你传入什么,就是什么