zoukankan      html  css  js  c++  java
  • 微服务常用注解解析

    Server包:

    Application启动类:

    CommandLinerRunner:此接口用于实现springboot启动时,加载默认配置,比如数据库初始化。

    启动类的注解:

           @SpringBootApplication

           @EnableDiscoveryClient

           @EnableFeignClients(basePackages = “com.cl”)

          @MapperScan(basePackages = {com.cl.ai.**.mapper})

    Rest层(class):

    Rest注解:通常extends BaseRest

           @RestController

           @RequestMapping(value = “/make”)

           @GetMapping(value = “/enum”)

           @PostMapping(value = “/Save”)

           @Autowired和@Resource

          

           @ApiOperation

           @Slf4j

                   入参注解:

                  @RequestBody @Valid @Validated

                  Form注解:

                  @ToString

                  @Getter

                  @Setter

                  @Min(value = 0 , message = “isFinish不能小于0”)

                  @max

                  @JsonFormat(pattern = “yyyy-MM-dd”, timezone =”GMT+8”)

                  @NotNull(message = ”001|页码不能为空”)

           常用类型:

                  Page和Page<>:Mybatis中用于分页查询

                  Result和Result<>:自定义封装类

    Ps:<> 这叫范型,或者泛型!主要用去规定你这个集合中出现的数据类型!例子:一个弯可以装很多种食物,加上范型,比如是面,那么这个碗只能是装上面这类的食物的!

    Service层:

           接口类(interface):

                 

           Impl层(class):

                  @Service和@Service(“接口的名称”),Spring中默认是已经注册好的。

                  @Override

           @TranSactional(rollbackFor = Exception.class)事务回滚

           @Async(“getTask”)和@EnableAsync:异步调用,启用多线程。在Spring中,@EnableAsync可以使用多线程,@Async可以定义一个线程任务。

           @Value(“${}”)和@Value(“#{}”)获取配置文件

           HSSFWorkBook:工作簿的高级表现形式,用来读取excel.

           MongoTemplate:java的mongo操作类。

    Ps: @Repository、@Service、@Controller 和 @Component

    Component层:

           Mapper(interfeac):extends BaseDAO

                  @Mapper,要在启动类中添加@MapperScan(),mybatis3.4以后出现

                  @repository:注解接口,起到声明作用

                 

                  @Select和@Param,@Results,@Result

                  @Insert

                  @Update

    Ps:@repository @Service @Compent@Controller,没有本质区别,都是声明作用,取不同的名字是为了区分。

           Model(class):

                  @TableName(“”)

                  @Setter

                  @Getter

                  @TableId 表主键标识

                  @TableLogic 表字段逻辑处理注解,逻辑删除

    Global层:

           Cofig(class):

                  @Configuration用于定于配置类。

                  @ApolloConfig用来自动注入Config

                  @ApolloConfigChangeListener用来自动注册ConfigChangeListener

           Constants(enum):

           Util(class):

    Api包:

           Dto层:

                  Bo(class):

                  @data:为类提供@Geeter/@Setter,同时还提供equals(),hashCode(),toString()

                  @NoArgsConstructor:lomback生成构造方法的注解,此注解生成一个无参构造方法。

                  @JsonNaming(SnakeCaseStrategy.class)指定Json字段名映射策略为蛇形大小写策略。

           Constants(class):

                  @JsonFormat(shape=JsonFormat.Shape.OBJECT)java将枚举序列化为对象

           Form(class):

                  @ApiModel

                  @ApiModelProperty声明api

           Feign层(interface):

                  @FeignClient(name=”spring-boot-user”,url=””):spring-boot-user是eureka服务里面user项目的名称,加入此注解,能直接连接user项目接口。

                  @GetMapping(value=””)

                  @PostMapping(value=””)

                  @PathVariable(“id”)用来映射url中的占位符到目标方法的参数中。

  • 相关阅读:
    HTML5本地缓存localStorage和sessionStorage的操作方法收集
    Jackson使用ObjectManage#readValue传入泛型T的问题
    Java压缩字符串的方法收集
    Java读取文本文件
    IntelliJ IDEA字符串常量长度太长的问题解决:constant string too long
    Jetty错误:java.lang.IllegalStateException: Form too large 270468>200000的问题解决
    记录一次Elasticsearch线上部署后出现:org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []的问题解决
    HTML-DEV-ToolLink(常用的在线字符串编解码、代码压缩、美化、JSON格式化、正则表达式、时间转换工具、二维码生成与解码等工具,支持在线搜索和Chrome插件。)
    cssz中<a>标签鼠标选中去除选中边框
    CentOS查看主板型号、CPU、显卡、硬盘等信息
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/10847396.html
Copyright © 2011-2022 走看看