博主分享免费Java教学视频,B站账号:Java刘哥
一、基本介绍
@SpringBootApplication:
包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 @Repository: 用于标注数据访问组件,即DAO组件。 @Service: 用于标注业务层组件。 @Controller: 用于标注控制器组件 @RestController: 用于标注控制层组件,包含@Controller和@ResponseBody。 @ResponseBody: 表示该方法的返回结果直接写入HTTP response body中 一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。 @Component: 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @ComponentScan: 组件扫描。个人理解相当于<context:component-scan>,如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean。 @Configuration: 指出该类是 Bean 配置的信息源,相当于XML中的<beans></beans>,一般加在主类上。 @Bean: 相当于XML中的<bean></bean>,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。 @EnableAutoConfiguration: 让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。 @AutoWired: byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 当加上(required=false)时,就算找不到bean也不报错。 @Qualifier: 当有多个同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用 @Resource(name="name",type="type"): 没有括号内内容的话,默认byName。与@Autowired干类似的事。 @RequestMapping: RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 该注解有六个属性: params:指定request中必须包含某些参数值是,才让该方法处理。 headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。 value:指定请求的实际地址,指定的地址可以是URI Template 模式 method:指定请求的method类型, GET、POST、PUT、DELETE等 consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html; produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回 @RequestParam: 用在方法的参数前面。 @RequestParam String a =request.getParameter("a")。 下面将对上面常用注解进行介绍二、举例介绍
1、@ComponentScan SpringBoot 默认是扫描启动类所在包下的所有含有 @Component、@Repository、@Service、@Controller 的类 当然也相当于在启动类上加了- @ComponentScan(basePackages = {"com.liuyanzhao.demo"})
注解 | 含义 |
---|---|
@Component | 最普通的组件,可以被注入到spring容器进行管理 |
@Repository | 作用于持久层 |
@Service | 作用于业务逻辑层 |
@Controller | 作用于表现层(spring-mvc的注解) |
- @Service
- //相当于 @Service(value = "userServiceImpl")
- public class UserServiceImpl implements UserService{
- @Override
- public String sayHi() {
- return "Hi!";
- }
- }
- //方法一、寻找可以扫描到的实现了 UserService 接口的类
- @Autowired
- private UserService userService;
- //方法二、如果有多个类实现了 UserService,需要指定时哪个实现类
- @Autowired
- @Qualifier("userServiceImpl")
- private UserService userService;
- //方法三、寻找可以扫描到的实现了 UserService 接口的类
- @Resource
- private UserService userService;
- //方法四、如果有多个类实现了 UserService,需要指定时哪个实现类
- @Resource(name = "userServiceImpl")
- private UserService userService;
- @RestController
- public class UserController {
- @Autowired
- private UserService userService;
- @RequestMapping(value = "/user/list",method = RequestMethod.GET)
- //相当于 @GetMapping("/user/list")
- public List<User> userList() {
- return userService.listUsers();
- }
- }
- @RestController
- @RequestMapping("/user")
- public class UserController {
- @Autowired
- private UserService userService;
- @RequestMapping(value = "/list",method = RequestMethod.GET)
- //相当于 @GetMapping("/list")
- public List<User> userList() {
- return userService.listUsers();
- }
- }
- /**
- * URL例子:/user/list?page=1&size=10
- * <p>
- * 参数加了 @RequestParam("page")表示
- * 1、默认该参数必选
- * 2、参数名为page(而pageIndex只是形参,随便啥都可以)
- * 3、可以设置参数是否必须,默认值
- *
- * @param pageIndex
- * @param pageSize
- * @return
- */
- @GetMapping("/list")
- public List<User> userList(@RequestParam("page") Integer pageIndex,
- @RequestParam(value = "size", required = false, defaultValue = "10") Integer pageSize) {
- System.out.println(pageIndex);
- System.out.println(pageSize);
- return userService.listUsers(pageIndex, pageSize);
- }
- /**
- * /user/{id} 中花括号里的 id 和 @PathVariable("id") 中的id匹配
- * @param id
- * @return
- */
- @GetMapping("/user/{id}")
- public User getUser(@PathVariable("id") Integer id) {
- return userService.getUserById(id);
- }
- spring.thymeleaf.prefix=classpath:/templates/
- spring.thymeleaf.suffix=.html
- @Controller
- public class UserController {
- @Autowired
- private UserService userService;
- @GetMapping("/user/list")
- public ModelAndView userList() {
- ModelAndView modelAndView = new ModelAndView();
- List<User> userList = userService.listUsers();
- modelAndView.addObject("userList",userList);
- //表示渲染在 templates/user/list.html
- modelAndView.setViewName("user/list");
- return modelAndView;
- }
- }
- @Controller
- public class UserController {
- @Autowired
- private UserService userService;
- @GetMapping("/user/list")
- public String userList(Model model) {
- List<User> userList = userService.listUsers();
- model.addAttribute("userList", userList);
- return "user/list";//表示渲染在 templates/user/list.html
- }
- }
- @Controller
- public class UserController {
- @GetMapping("/user/list")
- @ResponseBody
- public User userList() {
- User user = new User();
- user.setId(001);
- user.setAge(19);
- user.setName("张三");
- return user;
- }
- }
- @RestController
- public class UserController {
- @GetMapping("/user/list")
- public User userList() {
- User user = new User();
- user.setId(001);
- user.setAge(19);
- user.setName("张三");
- return user;
- }
- }
- 微信
- 交流学习,有偿服务
- 博客/Java交流群
- 资源分享,问题解决,技术交流。群号:590480292
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏