常用注解 :(摘抄至)https://www.cnblogs.com/leskang/p/5445698.html
1、@Controller (要在xml文件中定义扫描范围) 定义了一个控制器类,控制器Controller 负责处理由DispatcherServlet 分发的请求,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。
2、@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
RequestMapping注解有六个属性
value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
3、@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解
4、@ModelAttribute和 @SessionAttributes
代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。
@SessionAttributes即将值放到session作用域中,写在class上面。
5、@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数
@RequestMapping(value="/user/{userId}/roles/{roleId}")
public String getLogin(@PathVariable("userId") String userId){
System.out.println("User Id : " + userId);
return "hello";
}
6、@requestParam
@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”),它有三个常用参数:defaultValue = “0”, required = false, value = “isApp”;defaultValue 表示设置默认值,required 通过boolean设置是否是必须要传入的参数,value 值表示接受的传入的参数类型。@RequestParam用来获得静态的URL请求入参
7、@ResponseBody和 @ResponseBody
@RequestBody:注解实现接收http请求的json数据,将json转换为java对象
@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户
8、@Component
9、@Repository
用于注解dao层
和Struts 2比较
https://blog.csdn.net/yzl127/article/details/78846677
区别1:
1.springmvc入口是一个servlet前端控制器(DispatcherServlet),struts2入口是一filter过滤器(StrutsPrepareAndExecuteFilter).
2.springmvc是基于方法开发的,struts2是基于类开发的。
3.struts2采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数绑定期将request请求内容解析,并给方法形参赋值.
4.struts2通过在action类中定义成员变量接收参数,(属性驱动和模型驱动),它只能使用多例模式管理action.
springmvc通过在coontroller方法中定义形参接收参数,springmvc可以使用单例模式管理controller.