目录
一、概念
二、springmvc注解详解
(一)控制层注解
1.@Controller
2.@RequestMapping
3.@ResponseBody
(二)配置类(bean类)注解
4.@configuration
5.@Bean
一、概念
在学习springmvc的时候,很多时候对于代码看得云里雾里,不理解这里为什么要这样写,首先就要先理解这些注解的使用,才能知道这个类,这个方法在干嘛。要干嘛?
二、springmvc注解详解
(一)控制层注解
1.@Controller
这个注解是是Spring框架提供的注解。用于标记在一个类上面
关于调用:
这个类代表控制器类(控制层/表现层)。
这里控制层里面的每个方法,都可以去调用@Service标识的类(业务逻辑层)。
@Service标识的类中的方法又可以继续调用@Resposity标识的接口实现类(Dao层/持久层)。
搭配其他注解使用:
用@Controller定义一个控制器类,
用@RequestMapping给出外界访问方法的路径,或者说触发路径 ,触发条件。
用@ResponseBody标记Controller类中的方法。把return的结果变成JSON对象返回。
补充知识:
@Controller用于标记在一个类上,使用它标记的类就是一个Controller类,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了 @RequestMapping 注解。
@Controller只是定义了一个控制器类,而使用 @RequestMapping 注解的方法才是处理请求的处理器。
2.@RequestMapping
这个注解用在@Controller定义一个控制器类的方法上面。
用于将任意HTTP 请求映射到控制器方法上。能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。默认请求是 HTTP GET 类型的。
补充知识:
在使用@RequestMapping()注解的前提下,使用@ResponseBody()注解,则有返回值会使用@ResponseBody()注解进行转换并返回前台页面,不会执行跳转操作。
总结:只用@RequestMapping这个并且有返回值会解析为跳转页面,再加上@ResponseBody后会解析json数据
3.@ResponseBody
这个@ResponseBody注解是作用在方法上的 。作用是将java对象转为json格式的数据。
补充知识:
(1)在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据。
(2)将返回值转换成JSON,如果返回值是String或者其他基本数据类型则不满足key-value形式,不能转换成json类型,则返回字符串。
总结:只用@RequestMapping这个并且有返回值会解析为跳转页面,再加上@ResponseBody后会解析json数据
(二)配置类(bean类)注解
4.@configuration
这个注解是一个类级别的注解。@Configuration类通过带@Bean注释在方法上声明bean。
你想要定义一个配置类并交给spring管理的时候你就可以在类上面加这个注解,并配合@Bean注解把对象交个spring去管理。(这个类的功能等同于一个bean xml配置文件)
配置类使用要求:
(1)不能是final类
(2)不能在方法中声明,不能是private类
(3)任何嵌套类都必须声明static
总结:
@Configuration注解类下的所有带着@Bean的方法都会被动态代理,因此调用该方法返回的都是同一个实例。
5.@Bean
这个注解是一个方法级别的注解。就是告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在IOC容器中
搭配其他注解使用:主要用在@Configuration注解的类里面的方法上面,也可以用在@Component注解的类里面。添加的bean的id为方法名。