zoukankan      html  css  js  c++  java
  • JAVA记录-@Controller和RequestMapping注解代码介绍

    1.spring-mvc.xml加入配置

     <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
        <context:component-scan base-package="com.net.xinfang.controller" />

    2.@controller/@RequestMapping/@RequestParam写法

    @Controller
    @RequestMapping(value = "/cte") ---代表第一层url
    public class CntoEnController {
        
        @RequestMapping(value="/getcte", method = {RequestMethod.GET})  ---代码第二次url
        public String test(HttpServletRequest request,Model model, 
        @RequestParam(value="langType", defaultValue="zh") String langType){  ---请求的值传给langType
           return "cte";                      
        }  
    }
    
    完整请求路径为:http://ip地址:端口号/项目名/cte/getcte?langType=zh
    

    3.@RequestMaping写法

    @RequestMapping(value="",method={"",""},headers={},params={"",""})

    参数:

    value:设置访问地址

    method:设置访问方式,常用的method=RequestMethod.POST,和method=RequestMethod.GET

    headers:头域,可以设置浏览器支持的格式

    params:访问参数设置

    注解作用:

    用来定义访问的url。可以是方法级别的,也可以是类级别的。两者可以协同工作,缩小选择范围。也可以隐藏代码的真实路径,更加具有安全性和可读性。

    @Autowired

    注解作用:

    可以对成员变量、方法和构造函数进行标注,来完成自动装配工作。可以消除get,set方法。

    可以使用@Autowired注解来减少代码量。首先,在applicationContext中加入:

    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

    然后,在变量上添加@Autowired注解,并去掉相应的getter和setter方法:

    public class ClasServiceImpl implements ClasService{
        
        @Autowired
        private ClasDAO clasDAO;
        
      ...
        
    }

    并且在applicationContext中将相应的<property></property>标签去掉:

        <bean id="clasService" class="com.school.service.ClasServiceImpl">
        </bean> 

    Spring启动时,AutowiredAnnotationBeanPostProcessor会扫描所有的Bean,当发现其中有@Autowired注解时,就会找相应类型的Bean,并且实现注入。

    @ResponseBody

    注解作用:

    直接放在方法上,表示返回类型将会直接作为Http响应字节流输出,可以用于Ajax。

    @RequestParam(required=,value="",defaultValue="")

    参数:

    required:参数是否必须,boolean类型,默认为true

    value:传递的参数名称,String类型,可选项,有值则对应方法的参数

    defaultValue:参数没有传递时为参数默认指定的值

    @Override

    伪代码,表示重写(当然不写也可以),不过也有好处:

    1、可以当注释用,方便阅读;

    2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
     例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
  • 相关阅读:
    C++ 引用做左值
    C++ 引用本质的详解
    C++ 引用基础
    C语言错误 指针的类型错误
    C++ c++与C语言的区别(三目运算符,const修饰符)
    C++ c++与C语言的区别(struct类型的加强,函数-变量类型加强,bool类型)
    C++ c++与C语言的区别(实用性增强,register关键字增强,全局变量检测增强)
    C++ c++初识
    C语言 Linux内核链表(企业级链表)
    C语言 结构体中属性的偏移量计算
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7686279.html
Copyright © 2011-2022 走看看