Springboot常用注解
@Controller、@Repository、@Service、@Component
@Controller:控制层使用
@Service:service层使用
@Repository:dao层使用
@Component:组件
这四个注解效果都是一样的,标识这个类成为了一个IOC容器中的Bean工厂,使用这些注解后就不需要再去中手动配置bean文件
@ResponseBody
加了这个注解之后控制器返回的字符串则就只是普通的字符串,不会再进行页面跳转了
@RestController
组合注解相当于@Controller+@ResponseBody
@RequestMapping
用于建立请求URL和处理请求方法之间的对应关系@RequestMapping(“/hello”)
@GetMapping、@PostMapping、@DeleteMapping、@PutMapping
@GetMapping组合注解,等价于@RequestMapping(method = RequestMethod.Get ),用于简化开发,注意:@RequestMapping如果没有指定请求方式,将接收Get、Post、Head、Options等所有的请求方式。同理还有@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping等。
@RequestBody
接收前端传递给后端的json字符串中的数据的
@RequestParam
将请求参数绑定到你控制器的方法参数上,可以设置请求参数是否必传、参数默认值以及处理参数名称不一致的问题
//提交数据 : http://localhost:8080/hello?username=zhangsan//处理方法 :传过来的参数是username,接收的参数是name,就可以用@RequestParam("username")处理@RequestMapping("/hello")public String hello(@RequestParam("username") String name){ System.out.println(name); return "hello";}
@PathVariable
映射 URL 绑定的占位符,RestFul风格
//默认的风格通过add?=a21&b=2进行传参: //http://localhost:8080/add?a=1&b=2 @RequestMapping("/add") public String test_01(int a, int b, Model model){ int res = a + b; model.addAttribute("msg","结果为:"+res); return "hello"; } //在参数前加上@PathVariable则变为RestFul风格 //http://localhost:8080/add/1/12 //并且这个默认的请求方式是GET @RequestMapping("/add/{a}/{b}") public String test_02(@PathVariable("a") int a, @PathVariable("b") int b, Model model){ int res = a + b; model.addAttribute("msg","结果为:"+res); return "hello"; }
@SpringBootApplication
标识该项目是一个Springboot工程,是一个符合注解,包含了三个注解:
@SpringBootConfiguration:就是一个包含了@Configuration注解的组合注解,表示启动类也是一个配置类
@EnableAutoConfiguration:引入@Import注解,@Import注解导入了一个AutoConfigurationImportSelector.class,该类读取所有/META-INF/spring.factories文件中的配置类,实现依赖注入
@ComponentScan:指定扫描路径
@Conditiona
按照一定的条件进行判断,满足条件给容器注册bean。
@Conditional扩展注解
@ConditionalOnBean:如果Bean存在就候注入IOC容器
@ConditionalOnClass:如果类存在就候注入IOC容器