zoukankan      html  css  js  c++  java
  • SpringBoot 注解

    来记录一下springBoot使用频率较高的注解

    @SpringBootApplication(启动类)
    是Sprnig Boot项目的核心注解,目的是开启自动配置
    先做下记录,有时间再深入探索SpringApplication执行流程 可参考:https://blog.csdn.net/qq_28289405/article/details/81302498
    @SpringBootApplication
    public class AdminApplication {
        public static void main(String[] args) {
            SpringApplication.run(AdminApplication.class, args);
        }
    }
    

      

    @Controller (注入服务)
    用于标注控制层,相当于struts中的action层
    @Controller
    public class OrderController {
        
    }
    
    
    
    @Service(注入dao)
    用于标注服务层,主要用来进行业务的逻辑处理
    @Service
    public class OrderServiceImpl implements OrderService {
    
    }
    

      

    @Repository(实现dao访问)
    用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
    使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
    
    
    @Repository
    public class OrderDao {
        
    }
    
    
    
    @ResponseBody(控制器返回)
    将结果写入HTTP response body中,比如异步获取json数据,会直接返回json数据
    @ResponseBody
    public CommonResult<CommonPage<Order>> list(@RequestBody Order order)
    {
        
    }
    

    @RestController(@Controller+@ResponseBody)
    用于标注控制层组件,是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器。
    
    
    @RestController
    public class OrderController {
        
    }
    
    
    
    @Component(组件)
    @Service、@Repository是它的扩展,它可以作用在任何层次
    @Component
    public class UserComponentImpl implements IUser {
        private String name = "UserComponentImpl";
    
        @Override
        public String get() {
            return name;
        }
    }
    
    
    

    @Bean(容器组件对象注入)
    注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法
    Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
    @Bean可以应用在很多方法上
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
    其实前面好几个注解都是声明Bean的注解
    • @Component 没有明确角色的组件
    • @Service 在业务逻辑层(Service层)使用
    • @Repositpry 在数据访问层(dao层)使用
    • @Controller 用于标注控制层组件
    • @RestController
    可参考:https://blog.csdn.net/lipinganq/article/details/79155072

    在讲一下和路由相关的注解
    @RequestMapping
    提供路由信息,负责URL到Controller中的具体函数的映射,方法返回值通常解析为跳转路径。
    
    
    @RequestMapping("/order")
    public class OrderController {
        @RequestMapping(value = "/list", method = RequestMethod.GET)
        public CommonResult create(@RequestBody Order order) {
    
      } 
    }
    
    
    

     

    还有一些swagger相关的注解

    @Api
    对类的说明
    @Api(tags = "OrderController", description = "订单管理")
    

      

    @ApiOperation
    请求方法的说明
    @ApiOperation("查询订单")
    

     

     还有

    @ApiImplicitParams
    @ApiResponses
    @ApiModel

     可参考:swagger2 注解整体说明 https://www.cnblogs.com/cxscode/p/11733140.html

    @Override
    告诉编译器这个方法是一个重写方法,如果父类或者被实现的接口不存在该方法,
    编译器便会报错,提示该方法没有重写父类中的方法
    public interface OrderService {
        List<Order> list(OrderQueryParam queryParam, Integer pageSize, Integer pageNum);
    }
    
    @Service
    public class NoticeServiceImpl implements NoticeService {
        @Override
        public List<Order> list(OrderQueryParam queryParam, Integer pageSize, Integer pageNum) {
            PageHelper.startPage(pageNum, pageSize);
            return orderDao.getList(queryParam);
        }
    }
    

      

      




    部分参考:
    https://www.cnblogs.com/clwydjgs/p/9255083.html
    SpringBoot注解:https://www.jianshu.com/p/005abebce09d
    声明Bean的注解:https://blog.csdn.net/lipinganq/article/details/79155072



  • 相关阅读:
    XXX is not in the sudoers file
    git错误“无法推送一些引用到xxx"的解决方法
    mysql开启远程访问
    ubuntu 在启动器中启动webstorm和phpstorm
    ubuntu nginx卸载和安装
    基于grunt构建的前端集成开发环境
    fullPage.js
    常见的HTTP状态码
    JS随机数
    CSS3简单的动画
  • 原文地址:https://www.cnblogs.com/cxscode/p/11732059.html
Copyright © 2011-2022 走看看