栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

项目开发中常用的jar包以及sdk

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

项目开发中常用的jar包以及sdk

项目开发中常用的jar包以及sdk 1.MetricService

Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganlia、Graphite结合,方便的提供图形化接口。

2.Guava中的缓存

引入com.google.common.cache包,使用缓存。

    
    private Cache WEBSOCKET_SESSION_CACHE;
基本概念

Guava中的缓存是本地缓存的实现,与ConcurrentMap相似,但不完全一样。最基本的区别就是,ConcurrentMap会一直保存添加进去的元素,除非你主动remove掉。而Guava Cache为了限制内存的使用,通常都会设置自动回收。

Guava Cache的使用场景:
以空间换取时间,就是你愿意用内存的消耗来换取读取性能的提升
你已经预测到某些数据会被频繁的查询
缓存中存放的数据不会超过内存空间

Guava Cache是单个应用运行时的本地缓存,单机版的缓存。它不把数据存放到文件或外部服务器。如果这不符合你的需求,请尝试Memcached或Redis。

优缺点

优点
线程安全的缓存,与ConcurrentMap相似,但前者增加了更多的元素失效策略,后者只能显示的移除元素。
提供了三种基本的缓存回收方式:基于容量回收、定时回收和基于引用回收。定时回收有两种:按照写入时间,最早写入的最先回收;按照访问时间,最早访问的最早回收。
监控缓存加载/命中情况。
集成了多部操作,调用get方式,可以在未命中缓存的时候,从其他地方获取数据源(DB,redis),并加载到缓存中。

缺点
Cuava Cache的超时机制不是精确的

使用

Cache是Guava提供的最基本缓存接口,Cache是通过CacheBuilder对象来build出来的,build之前可以设置一系列的参数

        WEBSOCKET_SESSION_CACHE = CacheBuilder.newBuilder()
                .expireAfterWrite(expire, TimeUnit.HOURS)
                .initialCapacity(initCacheCapacity)
                .maximumSize(maxCacheSize)
                .concurrencyLevel(concurrencyLevel)
                .recordStats()
                .build();
3.StringUtils工具类

StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。

除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()

4.CollectionUtils工具类

CollectionUtils提供很多对集合的操作方法,常用的方法如下:

5.swagger 是什么

是一款让你更好的书写API文档的规范且完整框架。

提供描述、生产、消费和可视化RESTful Web Service。

是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。

@ApiModel注解

使用场景:在实体类上边使用,标记类时swagger的解析类。
概述:提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省。

@ApiModel("用于语义请求")
public class UserQueryReq {
@ApiModelProperty注解
    @ApiModelProperty("硬件版本号")
    private String hid;
6.fastjson工具

fastjson是阿里巴巴出品的快速解析json的一个工具

解决的问题

一般最常见的是这两个方法:

JSON.toJSONString(object):序列化对象,生产字符串
JSON.parse(text):反序列化对象,字符串转json

对于一般的没有什么变更的操作来说,这两个其实够用了.

但有时候情况会有些特殊,比如说:某个字段我想转成json时换个键名.或者我忽略某个字段等特殊操作,如果用编程式开发的话实在是有些烦闷的.比较坑爹.用注解的方式就很不错.

@JSONField注解

一个简单的demo如下:

public class JSonTest {
 
	private String id ="111";
	
	private String name ="tom ";
 
    private Date date = new Date();
 
    ...getter/setter
}
	
 
public static void main(String[] args) {
		System.out.println(JSON.toJSONString(new JSonTest()));
}

如果此时我想将这个类转成json,但要像"userid:111,name:tom"注意是userid,而不是id,那么这样既可.

    @JSONField(name="userid")
	private String id ="111";
	
	private String name ="tom ";

打印结果:{“date”:1561545203036,“name”:"tom ",“userid”:“111”}

@JsonProperty注解

@JsonProperty注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别)

    @JSONField(name = "list.item.focus")
    @JsonProperty("list.item.focus")
    @ApiModelProperty("焦点")
    String focus;
7.SpringBeanUtils工具类

可通过SpringBeanUtils工具类拿到IOC容器中的bean

    public WsResp textSemantic(UserQueryReq req) {
        HighFreedomDialogReq hfdReq = convertReq(req);
        final AbcService proxy = SpringBeanUtils.getBean(AbcService.class);
        return proxy.textSemantic(hfdReq);
    }
8.MessageListener接口

springboot可以利用该接口实现Rsdis的失效监听事件

使用步骤

1.首先在pom文件中加入依赖

        
            org.springframework.boot
            spring-boot-starter-data-redis
        

2.创建一个监听类实现MessageListener接口,重写onMessage方法

当key失效时,会触发onMessage方法,只能获取失效的key值,不能获取key对应的value值

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号