zoukankan      html  css  js  c++  java
  • 注解

    常用注解类型

    @Validated 对po实体类进行校验
    @AssertFalse 校验false @AssertTrue 校验true @DecimalMax(value=,inclusive=) 小于等于value,inclusive=true,是小于等于 @DecimalMin(value=,inclusive=) 与上类似 @Max(value=) 小于等于value @Min(value=) 大于等于value @NotNull 检查Null @Past 检查日期 @Pattern(regex=,flag=) 正则 @Size(min=, max=) 字符串,集合,map限制大小

    @Document 
    把一个java类声明为mongodb的文档,可以通过collection参数指定这个类对应的文档,标注在实体类上,类似于hibernate的entity注解。
    @Id
    文档的唯一标识,在mongodb中为ObjectId,它是唯一的,不可重复,自带索引,通过时间戳+机器标识+进程ID+自增计数器(确保同一秒内产生的Id不会冲突)构成。

        @Transient
        映射忽略的字段,该字段不会保存到mongodb,只作为普通的javaBean属性。

    
    

        @Field
        映射 mongodb中的字段名,可以不加,不加的话默认以参数名为列名。


    @EnableAutoConfiguration,Spring Boot会自动根据你jar包的依赖来自动配置项目,一个项目只有一个带有该注解的类。
    @SpringBootApplication申明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan
    @PropertySource(value = "classpath:application.properties") 加载指定的属性文件
    @ConfigurationProperties(prefix = "mongodb") 类级别的注解
    @PropertySource( name="jdbc-bainuo-dev.properties",value= {"classpath:config/jdbc-bainuo-dev.properties"},ignoreResourceNotFound=false,encoding="UTF-8")

     注解差异

    1.@RestController和@Controller

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用。默认类中的方法都会以json的格式返回。
    1)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    2)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

    2.@Configuration 和 @Component 

    @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。

    3.@ConfigurationProperties 和 @value

      @ConfigurationProperties @value
    功能 批量注入配置文件中的属性 一个个指定
    松散绑定(松散语法) 支持 不支持
    SpEL 不支持 支持
    JSR303数据校验 支持 不支持
    复杂类型封装 支持 不支持

    所谓松散语法也就是属性命名规则(Relaxed binding)

    - person.firstName:使用标准方式
    - person.first-name:大写用-         
    - person.first_name:大写用_
    - PERSON_FIRST_NAME: 系统属性推荐使用这种写法

    @ConfigurationProperties支持松散语法         @Value不支持松散语法

    application.properties文件中有字段 persion.first-name

    @Component
    @ConfigurationProperties(prefix = "person")
    public class Person {
        private String firstName;
    }

    JSR303数据校验(@Validation)

    @ConfigurationProperties @Validated 支持      @Value不支持

      @ConfigurationProperties
    @Validated
    public class Properties {
    
        @NotNull
        private String userName;
        
        @Email
        private String email;
        
    }

    使用原则:在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;如果专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

     
  • 相关阅读:
    Pentaho Data Integration (二) Spoon
    Pentaho Data Integration笔记 (一):安装
    透视纹理引发的对于插值的思考
    读取位图(bitmap)实现及其要点
    关于渲染流水线的几何变化
    关于C++中不同类之间的赋值问题——存疑
    uva 12284 直接判断
    uva 12549 最大流
    uva 12544 无向图最小环
    uva 12587 二分枚举
  • 原文地址:https://www.cnblogs.com/mcahkf/p/9590680.html
Copyright © 2011-2022 走看看