JAVA-and-J2EE

Map不同实现对null值的限制不同

星期五, 十月 23rd, 2020 | JAVA-and-J2EE | 没有评论

Map不同实现对null值的限制不同,罗列如下:

key value 线程安全
HashTable 不可为null 不可为null 线程安全
ConcurrentHashMap 不可为null 不可为null 线程安全
TreeMap 不可为null 可为null 线程不安全
HashMap 可为null 可为null 线程不安全

HashTable由于实现上使用key的hashcode()方法,所以key不能为null。ConcurrentHashMap需要使用key的hashcode(),TreeMap使用key的compare()方法排序,所以key不能为null。

Tags:

vertx升级到3.9.2的mysql client的变动

星期五, 十月 2nd, 2020 | JAVA-and-J2EE | 没有评论

0. 应用有半年多没有动了,今天发现接口的数据丢失,未查到原因,重启应用解决,后续可能会放弃此应用 待定,先升个级

1.vertx升级到3.9.2 发现编译出错 调整修改

更多使用文档参加:https://vertx.io/docs/vertx-mysql-client/java/

 client
  .query("SELECT * FROM users WHERE id='sara'")
  .execute(ar -> {
  if (ar.succeeded()) {
    RowSet<Row> result = ar.result();
    System.out.println("Got " + result.size() + " rows ");
  } else {
    System.out.println("Failure: " + ar.cause().getMessage());
  }
 
  // Now close the pool
  client.close();

Tags:

guava-retrying延迟重试使用

星期三, 九月 30th, 2020 | JAVA-and-J2EE | 没有评论

0.很好用,但还是放弃使用了,主要guava依赖的版本原因,在guava-29和28版本中无法使用

项目git地址:https://github.com/rholder/guava-retrying

1.用法的几个类 列出如下:

    <dependency>
      <groupid>com.github.rholder</groupid>
      <artifactid>guava-retrying</artifactid>
      <version>2.0.0</version>
    </dependency>

› Continue reading

Tags:

表重命名快速指令

星期日, 九月 20th, 2020 | JAVA-and-J2EE | 没有评论

表重命名sql指令:

 
RENAME TABLE t_user TO t_user_20200920;
RENAME TABLE data_user TO t_user;

Tags:

启用远程调用Docker下应用selenium-chrome服务

星期五, 九月 18th, 2020 | JAVA-and-J2EE, linux | 没有评论

1.服务调用本地的chromedriver驱动部署到服务器上比较麻烦,借助docker可以快速使用和独立

docker-selenium 的git地址:https://github.com/SeleniumHQ/docker-selenium

如果未安装docker可以一键安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#或者:国内源速度快点
curl -sSL https://get.daocloud.io/docker | sh
##启动docker
sudo systemctl start docker
 
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-alpha-7-prerelease-20200907

2.启用chrome的支持cdp功能远程驱动
› Continue reading

Tags: ,

freemarker循环、日期格式化、常用汇总

星期六, 八月 15th, 2020 | JAVA-and-J2EE, spring-boot | 2 Comments

首先权威地址官方地址:https://freemarker.apache.org/

中文版使用手册地址:http://freemarker.foofun.cn/toc.html

1.日期格式及解决日期为NULL报错的写法

${(user.birthday?string("yyyy-MM-dd"))!}
 
//--或者--
${(user.birthday?string("yyyy-MM-dd"))!'--'}

2.判断对象是否存在再进行操作

<#if user?? >「${user.name }<#else></#if>

3.循环及计数使用

<#list listUser as user>
	<#if user?? >「${user.name }<#else></#if>
	<#if user?counter gt 3 >
	 ${user.email}
	</#if>
</#if>

Tags:

防止selenium和ChromeDriver的JS检测java版处理

星期一, 七月 27th, 2020 | JAVA-and-J2EE, linux | 没有评论

启用最新版本的 selenium-java的4.0.0-alpha-X版本即可支持CdpCommand抵挡 webdriver的检测为true

maven如下:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupid>org.seleniumhq.selenium</groupid>
    <artifactid>selenium-java</artifactid>
    <version>4.0.0-alpha-6</version>
</dependency>
<dependency>
     <groupid>com.google.guava</groupid>
     <artifactid>guava</artifactid>
</dependency>

对应java代码如下
› Continue reading

Tags:

springboot的瘦身部署计划lib依赖包分离

星期二, 六月 30th, 2020 | JAVA-and-J2EE, linux | 没有评论

1.springboot目前都趋向于使用jar部署,但是问题是每次打包的

fatjar都比较大,有50M左右,发布上传比较耗时,尤其是服务器在海外的情况更是感觉浪费时间

2.把依赖的lib包剥离出来,单独依赖减少每次的打包大小量

注意:若有新增加的依赖或者调整依赖库的版本需要重新调整lib,切记.

3.开始方法:正常打包 获取BOOT-INF下的lib依赖jar包

mvn clean install
› Continue reading

Tags:

修改eclipse默认注释日期显示中文(上午下午)的问题

星期二, 六月 23rd, 2020 | JAVA-and-J2EE, linux | 没有评论

默认注释${date} 会显示上午 下午等中文 现在可以自定义格式了

windows -> preferences -> java -> code style -> code template -> Comments ->Types
 
/**
 * @author pomelo.lee
 * @date ${currentDate:date('yyyy-MM-dd HH:mm:ss')}
 */

想要所有的都显示英文 可以在启动eclipse加语言参数控制,只是日期的话已经不需要了

eclipse的安装目录上找到eclipse.ini文件,加入:

 -Duser.language=en_US

Tags:

开启virtualbox端口映射,使用ssh连接

星期二, 六月 16th, 2020 | computer, JAVA-and-J2EE, linux | 没有评论

1.如果有条件可以开启虚拟机的桥接网卡的模式

自动获取路由器的IP地址,则可以自由连接

2.如果只是网络地址转换(NAT)

通过配置端口转发,实现ssh软件的连接

如下图:(IP:127.0.0.1 PORT:1022端口即可连接)

Tags: ,

Search

文章分类

Meta