1、 @Autowired与@Resource都可以用来装置bean. 都可以写在字段上,或写在setter方法上。
2、 @Autowired默认按类型装置(这个表明是属业spring的),默认情形下必须哀求依赖工具必须存在,如果要许可null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想利用名称装置可以结合@Qualifier表明进行利用,如下:
3、@Resource(这个表明属于J2EE的),默认按照名称进行装置,名称可以通过name属性进行指定,如果没有指定name属性,当表明写在字段上时,默认取字段名进行安装名称查找,如果表明写在setter方法上默认取属性名进行装置。当找不到与名称匹配的bean时才按照类型进行装置。但是须要把稳的是,如果name属性一旦指定,就只会按照名称进行装置。
@Controller和@RestController的差异
知识点:@RestController表明相称于@ResponseBody + @Controller合在一起的浸染。
1) 如果只是利用@RestController表明Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起浸染,返回的内容便是Return 里的内容。
2) 如果须要返回到指定页面,则须要用 @Controller合营视图解析器InternalResourceViewResolver才行。
如果须要返回JSON,XML或自定义mediaType内容到页面,则须要在对应的方法上加上@ResponseBody表明。
例如:
1.利用@Controller 表明,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则须要加@ResponseBody表明