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: ,

Linux-socket内核参数配置及含义详解

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

多由于Linux下解决time_wait连接过多(Linux内核优化配置)

内核文件配置:

vi /etc/sysctl.conf
##生效
/sbin/sysctl -p
 
##查看keepalive的相关配置
sysctl -a | grep keepalive
 
##查看tcp连接的相关状态指令
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
 
##若没有netstat指令安装
yum install net-tools

内核配置注释信息,参考自己的内存和CPU核数进行优化配置,如下
› Continue reading

Tags: ,

centos查询大于100M文件命令

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

centos 查询大于100M文件及列出

ls -lh $(find / -type f -size +100M)

spring boot aop log拦截配置

星期一, 五月 25th, 2020 | JAVA-and-J2EE | 没有评论

要记录web的入参和出参及方法执行情况,执行如下配置即可

package com.pomelolee.configuration;
 
import lombok.extern.slf4j.Slf4j;
 
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
 
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;
import org.springframework.web.multipart.MultipartFile;
 
@Slf4j
@Aspect
@Component
public class WebControllerLogConfig {
 
    @Pointcut("execution(public * com.pomelolee.endpoint.*.*(..))")
    public void webRecordLog() {
 
    }
 
    @Around("webRecordLog()")
    public Object process(ProceedingJoinPoint jp) throws Throwable {
        String className = jp.getSignature().getDeclaringTypeName();
        String methodName = ((MethodSignature) jp.getSignature()).getMethod().getName();
        String classMethod = className + "." + methodName;
        Object[] arguments = jp.getArgs();
        Object[] args = new Object[arguments.length];
        for(int i=0;i<arguments.length;i++) {
    	 if (arguments[i] instanceof ServletRequest || arguments[i] instanceof ServletResponse || arguments[i] instanceof MultipartFile) { 
             //ServletRequest不能序列化,从入参里排除,否则报异常:java.lang.IllegalStateException: It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false)
             //ServletResponse不能序列化 从入参里排除,否则报异常:java.lang.IllegalStateException: getOutputStream() has already been called for this response
               continue;
           }
           args[i] = arguments[i];
        }
        log.info("===controller classMethod:{},input args:{} ====", classMethod, JsonKit.toJSONString(args));
        final StopWatch stopWatch = new StopWatch();
        stopWatch.start();
        Object result = jp.proceed();
        stopWatch.stop();
        final String logMessage = StringUtils.leftPad(Long.toString(stopWatch.getTotalTimeMillis()), 5) + " ms ";
        log.info("the classMethod: {} cost time: {}",classMethod,logMessage);
        log.info("===controller  classMethod: {} ,input args:{} ====", classMethod, JsonKit.toJSONString(result));
        return result;
    }
}

比较完整,排除了 out等输出的异常情况

Tags: ,

VirtualBox下centos7修复generating /run/initramfs/rdsosreport.txt无法启动问题

星期二, 四月 28th, 2020 | computer, linux | 没有评论

开机就进入命令窗口,窗口提示信息如下,无法进入系统,让人头大:

generating “/run/initramfs/rdsosreport.txt”
entering emergencymode. exit the shell to continue
type “journalctl” to view system logs.
you might want to save “/run/initramfs/rdsosreport.txt” to a usb stick or /boot after mounting them and attach it to a bug report。

解决办法的命令如下:

xfs_repair /dev/mapper/centos-root -L
reboot

Tags: ,

springboot的关闭eureka注册中心服务

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

1.本地调试的时候不希望注册到eureka上影响其他服务的调用

可以配置applicatioon.properties文件添加对应的配置即可

eureka.client.register-with-eureka=false
eureka.client.fetchRegistry=false
eureka.client.server.waitTimeInMsWhenSyncEmpty=0

启动应用服务,可以到对应的注册中心(http://localhost:8761/eureka)查看,没有注册上来,ok

Tags: , ,

大数据相关的资料信息整理篇

星期一, 四月 13th, 2020 | 大数据 | 没有评论

1.大数据相关的资料信息 需要了解和掌握的东西记录下

1.大数据技术知识

第一章:基础组件篇

分布式协调系统:ZooKeeper

大数据基础平台:Hadoop

第二章:数据采集篇

分布式日志采集系统:Flume、Canal

分布式导入数据系统:Sqoop

第三章:数据存储篇

分布式数据仓库:Hive

分布式列式数据库:HBase

分布式消息系统:Kafka

分布式列式存储系统:Kudu

第四章:数据处理篇

快速通用的分布式计算引擎:Spark

新一代的分布式计算引擎:Flink

第五章:调度篇

分布式调度系统:Azkaban

第六章:OLAP篇

分布式内存实时分析系统:Druid

实时多维分析系统:Kylin

› Continue reading

Tags:

fastjson < 1.2.67 反序列化远程代码执行漏洞升级及思考

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

阿里云推送了fastjson 安全提醒,记得上次升级到61版本还没有多久,这次又有0day漏洞,其实对很多应用基本上是没有影响的,不用管它就行.

只是有短信 邮件等提醒 还是让人心不安的,从墨菲定律的上面说,你不知道其他人是怎么使用的就有可能会中招,从公司角度就是督促升级或者移除fastjson依赖、

或者购买安全服务拦截.

一:准备移除fastjson的依赖了,看了下封装个工具类JsonKit,实现下面的几个方法,就可以很好的替换了,更多功能根据自己的实际应用处理.

据华为云披露升级到1.2.67也无法完全避免,还有部分没有完全添加到黑名单中,默认关闭type即可.

public static String toJSONString(Object data) {
		try {
			return mapper.writeValueAsString(data);
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
		return "";
	}
 
	public static String parseObjectVal(String data, String key) {
		try {
			JsonNode node = mapper.readTree(data);
			return node.get(key).toString();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
 
	public static <t> T parseArray(String data, TypeReference</t><t> valueTypeRef) {
		T ret = null;
		try {
			ret = mapper.readValue(data, valueTypeRef);
		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return ret;
	}
 
	public static Map<String, Object> parseObject(String data) {
		Map<String, Object> map = parseObject(data, new TypeReference<Map<String, Object>>() {
		});
		return map;
	}
 
       // ......
</t>

› Continue reading

Tags: ,

Search

文章分类

Meta