Springboot MVC 常用注解详解

1、引入依赖项

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2、web应用目录结构

模板文件:位于 resources/templates目录下
静态文件(css、js、image)位于resources/static目录下
配置文件:位于 resources目录下
源代码文件:src目录下

3、包名结构

controller—控制器
service— 业务处理类
entity—实体类
conf–配置类
dao–数据库处理类

4、常用注解

@SpringBootApplication
核心注解,放在main方法所在启动类之上,表示springboot 入口

@Controller
作用于类之上,表明当前是一个mvc中的Controller。

@RestController
作用于类之上,表明当前类是一个controller而且类中的方法不能返回html、jsp等页面,只能返回 文本 json、xml

@ResponseBody
作用于 controller中的方法之上,表明当前方法返回的是文本,基于字符串、xml、json等。
@RestController等于 @Controller+@ResponseBody

@ReqeustMapping
作用于类或者方法之上。用于映射URL
比如示例:

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public class HelloController {

    @RequestMapping(value = "/test/{id}",method = RequestMethod.GET )
    public String test(@PathVariable("id") String id){
        return "hello,"+id;
    }
}

要想访问 test方法,那么访问路径是:
http://localhost:8080/hello/test,由于后面要加上参数,并且参数会传递到方法的参数中,所以完整的访问路径是:
http://localhost:8080/hello/test/adrian
得到的结果如图:
在这里插入图片描述
常用参数:
value,映射url
method,映射方法
params,请求中的参数,比如params=“id=adrian”
headers,请求中的HTTP头
produces,响应的媒体类型,其实就是对应HTTP协议中的Accept字段。
consumes,允许的媒体类型(Media Types)
对应这个method,RequestMapping又被简化成了很多个注解:
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

这些注解对应不同的请求方法

@PathVariable
这是一个作用域参数的注解,用于表示将url中的参数映射到后面的参数中
默认参数 value:表示映射哪一个url中的参数

@RequestBody
这也是一个作用于参数的注解,表示 客户端请求内容 需要是参数类型对应的JSON格式,服务端 Spring boot 默认使用 Jackson 来处理客户端请求的json,并反序列化为 参数类型。比如:

@PostMapping(path="/test.json")
    @ResponseBody
    public String test2(@RequestBody User user){
        return user.getName();
    }

上面代码表示客户端发起了一个json请求,spring boot返回的是一个字符串,二对于json请求,spring boot 将请求内容序列化为User 对象。

@ModelAttribute
1.应用在参数上,将客户端传过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用;
2.应用在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值加入到ModelMap中;

@Bean
作用和spring配置文件中的相同,但是放在方法的上面,而不是类,意思是将方法返回的对象作为一个bean,交给spring管理。
经常放在@Configuration注解的类中的方法之上使用。

@Qualifier
这个注解在当spring上下文中有多个同一类型的Bean时,会抛出BeanCreationException异常,所以用@Qualifier(“name”)来指定,但是需要与@Autowired配合使用,例如:

@Autowired   
@Qualifier("userServiceImpl")   
public IUserService userService;  

@Autowired
作用于类,属性、setter方法之上,用来装备对象,赋值的。

@Resource
和Autowired类似,也是用来装配对象,区别是:
1.@Autowired 是spring注解,而 @Resource是J2EE的。推荐使用 @Resource
2.@Autowired是根据类型进行自动装配的。所以一个类型有多个bean时,会报异常,那么这时候用上面说的@Qualifier来解决。
@Resource根据名称来进行装配

@Configuration
放在类的上面表示这是一个由spring管理的配置类,类中会有多个@Bean注解的方法,注意的是,@Bean注解的方法返回的对象都是由spring动态代理,是同一个实例

@Component
与@Configuration类似,也是注解配置类的,但是区别是@Component中的对象都是每次调用都会new一个新对象。
@Component 注解的类表示是spring的一个组件,可以被注入到spring容器中进行管理。

@Repository
也是注解类被注入到spring容器中管理的,但是区别是,
@Repository 会被作为持久层操作(数据库)的bean来使用 ,也就是说这个注解只能放在持久层操作类之上。

@Service
和 @Component属于同一类别的注解, 作用于业务逻辑层
其实 @Controller也是属于同一类型的注解,只是Controller只作用于控制器之上,会被spring-mvc框架所使用。

@ComponentScan
放在启动类之上,表示组件扫描,如果需要扫描@Component @Controller @Service这些注解的类,则需要在启动类上用到这个注解
同样,如果扫描到了有@Component @Controller @Service这些注解的类,则直接把这些类注册为bean

@EnableAutoConfiguration
让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在启动类上。

@ControllerAdvice
这个注解用于处理 统一异常处理 等切面时用到

@InitBinder
注册类中使用,比如注册一个日期转换类的时候用到

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot框架是一个用于开发Java应用程序的快速、便捷的框架。它提供了许多注解,用于简化开发过程和配置管理。以下是Spring Boot框架常用的注解: 1. @SpringBootApplication:这是一个组合注解,用于标识主应用程序类。它包含了@Configuration、@EnableAutoConfiguration和@ComponentScan等注解。 2. @RestController:用于标识一个类是RESTful风格的控制器,可以处理HTTP请求并返回JSON或XML等格式的响应。 3. @RequestMapping:用于映射HTTP请求到控制器的处理方法。可以指定请求的URL路径、请求方法、请求参数等。 4. @Autowired:用于自动装配依赖对象。Spring Boot会根据类型进行自动查找并注入对应的Bean。 5. @Value:用于注入配置属性值。可以从配置文件读取属性值,并将其注入到对应的字段或方法参数。 6. @Component:用于标识一个类是Spring管理的组件。可以通过@ComponentScan扫描并自动注册为Bean。 7. @Service:用于标识一个类是业务逻辑层的组件。通常与@Repository(数据访问层)和@Controller(表示层)一起使用。 8. @Repository:用于标识一个类是数据访问层的组件。通常与@Service(业务逻辑层)和@Controller(表示层)一起使用。 9. @Configuration:用于标识一个类是配置类。可以包含@Bean注解,用于定义Bean对象。 10. @EnableAutoConfiguration:用于启用自动配置。Spring Boot会根据项目的依赖和配置自动配置应用程序。 11. @EnableWebMvc:用于启用Spring MVC的配置。可以自定义配置Spring MVC的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值