工作中学习

1.JsonIgnoreProperties(ignoreUnknown = true)

在spring boot转换从序列化时,忽略类中不存在的字段,也可以指定忽略字段@JsonIgnoreProperties({ “password”, “secretKey” })


2.@FeignClient注解

@FeignClient注解用于创建声明式API接口,该接口是RESTful风格的,

  • name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
  • url: url一般用于调试,可以手动指定@FeignClient调用的地址
  • decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
  • configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
  • fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,
  • fallback指定的类必须实现@FeignClient标记的接口
  • fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
  • path: 定义当前FeignClient的统一前缀,当我们项目中配置了server.context-path,server.servlet-path时使用

3.@Validated注解

spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。

4.StringUtils.isEmpty判断是否为空

  判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
   下面是 StringUtils 判断是否为空的示例:

StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
StringUtils.isEmpty("   ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false

5.String.matches()

String.matches() 这个方法主要是返回是否匹配指定的字符串,如果匹配则为true,否则为false;

6.Strping.replaceAll()

语法:public String replaceAll(String regex, String replacement)

参数

  • regex -- 匹配此字符串的正则表达式。

  • replacement -- 用来替换每个匹配项的字符串。

返回值

成功则返回替换的字符串,失败则返回原始字符串。

public class Test {
    public static void main(String args[]) {
        String Str = new String("www.google.com");
        System.out.print("匹配成功返回值 :" );
        System.out.println(Str.replaceAll("(.*)google(.*)", "runoob" ));
        System.out.print("匹配失败返回值 :" );
        System.out.println(Str.replaceAll("(.*)taobao(.*)", "runoob" ));
    }
}

以上程序执行结果为:

匹配成功返回值 :runoob
匹配失败返回值 :www.google.com

7.HashMap.containsKey()

containsKey() 方法检查 hashMap 中是否存在指定的 key 对应的映射关系。存在指定的 key 对应的映射关系返回 true,否则返回 false

8.Spring.split()

split() 方法根据匹配给定的正则表达式来拆分字符串。

注意: . 、 $、 | 和 * 等转义字符,必须得加 \\。

注意:多个分隔符,可以用 | 作为连字符。

语法

public String[] split(String regex, int limit)

参数

  • regex -- 正则表达式分隔符。

  • limit -- 分割的份数。

返回值

字符串数组。

读写Excel工具类ExcelUtil

getLastRowNum() :读取总行数

getLastCellNum():读取总列数、

LinkedHashMap

 HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。

不过遗憾的是,HashMap是无序的,也就是说,迭代HashMap所得到的元素顺序并不是它们最初放置到HashMap的顺序。HashMap的这一缺点往往会造成诸多不便,因为在有些场景中,我们确需要用到一个可以保持插入顺序的Map。庆幸的是,JDK为我们解决了这个问题,它为HashMap提供了一个子类 —— LinkedHashMap。虽然LinkedHashMap增加了时间和空间上的开销,但是它通过维护一个额外的双向链表保证了迭代顺序。特别地,该迭代顺序可以是插入顺序,也可以是访问顺序。因此,根据链表中元素的顺序可以将LinkedHashMap分为:保持插入顺序的LinkedHashMap 和 保持访问顺序的LinkedHashMap,其中LinkedHashMap的默认实现是按插入顺序排序的。


Java Map.values()方法:

获取Map集合中的所有值对象

  1. public static void main(String[] args){
  2. Map map = new HashMap(); //定义Map集合对象
  3. map.put("apple","新鲜的苹果"); //向集合中添加对象
  4. map.put("computer","配置优良的计算机");
  5. map.put("book","堆积成山的图书");
  6. Collection values = map.values(); //获取Map集合的value集合
  7. for(Object object:values){
  8. System.out.println("键值:"+object.toString()); //输出键值对象
  9. }
  10. }
  11. 运行结果如下:
    键值:配置优良的计算机
    键值:新鲜的苹果
    键值:堆积成山的图书

从entrySet()方法解释Map.Entry

set<Map,Entry<K,V>> entrySet() 将Map集合转换成set集合
假设现在有一个Map集合,如下所示
map集合。Map集合通过entrySet()方法转换成的这个set集合,set集合中元素的类型是Map.Entry<K,V>
Map.Entry和String一样,都是一种类型的名字,只不过Map.entry是静态内部类,是Map中的

Map.Entry<String, List<DnnExcelVO>> entry : data.entrySet()

JsonPath.read(json, json路径);

使用这个方法可以取出指定json路径上的json值.

JsonPath.read(outJson, "$.data.deviceList");取出outJson里data:deviceList下的值

StringTokenizer的用法详解

1.StringTokenizer(String str) :被分割对象str,分隔符采取默认分割,Java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。默认的话,所有的分隔符都会同时起作用。

实例:

[java]  view plain  copy  
public static void main(String[] args) {  
 StringTokenizer st = new StringTokenizer("www ooobj com");  
 while(st.hasMoreElements()){  
 System.out.println("Token:" + st.nextToken());  
 }  
 }  
输出:
Token:www
Token:ooobj
Token:com

api:
boolean hasMoreTokens(); //判断字符串中是含还有token 

Object nextElement();//除返回结果类型外,其返回与 nextToken 方法相同的值

String nextToken();//StringTokenizer对象中的下一个token。 

instanceof关键字

他的作用就是测试左边的对象是不是右边类的实例,是的话就返回true,不是的话返回false。

boolean b = object instanceof class

<![CDATA[ ]]>用法

在xml文件中<![CDATA[ 标记为纯文本 ]]>

在pg库中查询表属性sql

SELECT col_description(a.attrelid,a.attnum) as comment,format_type(a.atttypid,a.atttypmod) as type,a.attname as name, a.attnotnull as notnull
FROM pg_class as c,pg_attribute as a
where c.relname = 'table_name' and a.attrelid = c.oid and a.attnum>0

读取配置文件中属性的方法

1.使用@value注解直接读取

2.使用实体类读取配置文件

例子:

 先创立cccccTg对象实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class cccccTg {
    public String path;
    public String ip;
    public String cfgType;
    public String netType;
}

再创建读取配置文件实体类

使用@ConfigurationProperties(prefix = "name")读取指定配置内融,注意属性名必须和配置文件里一样,不然无法读取

@Data
@Component
@ConfigurationProperties(prefix ="pml")
public class FileConfig {
    List<cccccTg> cccccTg;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值