首页
归档
友链
关于
Search
1
网易云音乐黑胶会员月月免费赠送
2,970 阅读
2
十年之约RSS聚合订阅服务上线
2,532 阅读
3
工资发放日的区别
2,215 阅读
4
rsyslogd内存占用过高解决方案
2,168 阅读
5
Nginx反代MinIO后,上传文件签名异常
2,071 阅读
零碎
标本
码海
工具
其他
登录
Search
标签搜索
北京
摄影
Java
旅行
生活
学习笔记
教程
Linux
服务器
软件
SpringBoot
日记
Windows
服务
数据库
福利
Spring
系统
SQL
前端
萧瑟
累计撰写
190
篇文章
累计收到
1,268
条评论
首页
栏目
零碎
标本
码海
工具
其他
页面
归档
友链
关于
搜索到
38
篇与
Java
的结果
2021-11-13
苹果M1安装JDK环境
自从前段时间给小可爱买了苹果 MacBookPro 后,我一直都没怎么体验过,刚好最近她暂时不用,我最近也挺闲,就用了几天,感觉“解放生产力的第一步就是生产工具”。正所谓“工欲善其事必先利其器”,所以总结一下使用过程和一些常用的工具使用。JDK安装由于Oracle公司没有适配苹果M1芯片的JDK,在网上找了一个zulu家的JDK,适合ARM架构的,也支持苹果M1芯片。拖动安装然后出现安装流程,下一步就可以安装完成。环境校验下载地址{cloud title="官网下载" type="default" url="https://www.azul.com/downloads/?version=java-8-lts&os=macos&architecture=arm-64-bit&package=jdk" password=""/}{cloud title="本站下载" type="default" url="https://pan.bcrjl.com/dev/jdk" password=""/}
2021年11月13日
742 阅读
0 评论
2021-11-01
Spring Boot 核心知识点总结
Spring Boot 核心功能独立运行Spring项目Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。内嵌servlet容器Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。提供starter简化Maven配置spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web,会自动加入依赖包。自动装配SpringSpringBoot会根据在类路径中的jar包,类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot灭有提供支持,则可以自定义自动配置。准生产的应用监控SpringBoot提供基于http ssh telnet对运行时的项目进行监控。无代码生产和xml配置SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。Spring Boot 优缺点优点:快速构建项目。对主流开发框架的无配置集成。项目可独立运行,无须外部依赖Servlet容器。-提供运行时的应用监控。极大的提高了开发、部署效率。与云计算的天然集成。{dotted startColor="#ff6c6c" endColor="#1989fa"/}缺点:如果你不认同spring框架,也许这就是缺点。Spring Boot特性创建独立的Spring项目内置Tomcat和Jetty容器提供一个starter POMs来简化Maven配置提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等完全没有代码生成和xml配置文件Spring Boot CLISpringBoot CLI 是SpringBoot提供的控制台命令工具。Spring Boot maven 构建项目spring-boot-starter-parent:是一个特殊Start,它用来提供相关的Maven依赖项,使用它之后,常用的包依赖可以省去version标签。Spring Boot几个常用的注解(1)@RestController和@Controller指定一个类,作为控制器的注解 ,并说明其区别(2)@RequestMapping方法级别的映射注解,这一个用过Spring MVC的小伙伴相信都很熟悉 (3)@EnableAutoConfiguration和@SpringBootApplication是类级别的注解,根据maven依赖的jar来自动猜测完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器(4)@Configuration类级别的注解,一般这个注解,我们用来标识main方法所在的类,完成元数据bean的初始化。(5)@ComponentScan类级别的注解,自动扫描加载所有的Spring组件包括Bean注入,一般用在main方法所在的类上 (6)@ImportResource类级别注解,当我们必须使用一个xml的配置时,使用@ImportResource和@Configuration来标识这个文件资源的类。 (7)@Autowired注解,一般结合@ComponentScan注解,来自动注入一个Service或Dao级别的Bean(8)@Component类级别注解,用来标识一个组件,比如我自定了一个filter,则需要此注解标识之后,Spring Boot才会正确识别。spring boot是如何管理事务的?直接写@transactional注解就行,在方法就是方法事务,类上就是类事务。
2021年11月01日
447 阅读
1 评论
2021-10-14
Java获取MultipartFile文件的MD5
Java 获取文件的 MD5 ,核心都是通过 Java 自带的 MessageDigest 类来实现。获取文件 MD5 值主要分为三个步骤,第一步获取文件的 byte 信息,第二步通过 MessageDigest 类进行 MD5 加密,第三步转换成16进制的 MD5 码值。方法一/** * 获取上传文件的md5 * @param file * @return * @throws IOException */ public String getMd5(MultipartFile file) { try { //获取文件的byte信息 byte[] uploadBytes = file.getBytes(); // 拿到一个MD5转换器 MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] digest = md5.digest(uploadBytes); //转换为16进制 return new BigInteger(1, digest).toString(16); } catch (Exception e) { log.error(e.getMessage()); } return null; }方法二使用 Java 自带的 commons-codec 包,获取16进制 MD5 值的方法。DigestUtils.md5Hex():提供三种类型( byte[] 、InputStream 、String )生成MD5/** * 获取上传文件的md5 * @param file * @return * @throws IOException */ public String getMd5(MultipartFile file) { try { byte[] uploadBytes = file.getBytes(); //file->byte[],生成md5 String md5Hex = DigestUtils.md5Hex(uploadBytes); //file->InputStream,生成md5 String md5Hex1 = DigestUtils.md5Hex(file.getInputStream()); //对字符串生成md5 String s = DigestUtils.md5Hex("字符串"); return md5Hex ; } catch (Exception e) { log.error(e.getMessage()); } return null; }
2021年10月14日
958 阅读
2 评论
2021-10-13
rsyslogd内存占用过高解决方案
今天产品经理告诉我项目打不开了,让我解决一下问题。经过短暂的排除,发现 docker 运行四个月,容器日志把 50G 磁盘占用完了,导致项目网站部分服务不可用。重启 docker ,重新部署后,偶然发现服务器的内存使用率也达到 85% ,我记得之前 docker 优化后才占用 30% ,所以这个问题也需要排除一下。查看服务器状态使用top命令查看服务器各个程序占用CPU、内存情况。查看消耗内存最多的前40个进程ps auxw|head -1;ps auxw|sort -rn -k4|head -40通过结果看到rsyslogd日志管理服务占用了10%左右的内存。修改rsyslogd服务配置文件vim /usr/lib/systemd/system/rsyslog.service在Service配置中添加 MemoryAccounting=yes、MemoryMax=80M、MemoryHigh=8M 三项如下所示。[Unit] Description=System Logging Service ;Requires=syslog.socket Wants=network.target network-online.target After=network.target network-online.target Documentation=man:rsyslogd(8) Documentation=http://www.rsyslog.com/doc/ [Service] Type=notify EnvironmentFile=-/etc/sysconfig/rsyslog ExecStart=/usr/sbin/rsyslogd -n $SYSLOGD_OPTIONS Restart=on-failure UMask=0066 StandardOutput=null Restart=on-failure MemoryAccounting=yes MemoryMax=80M MemoryHigh=8M [Install] WantedBy=multi-user.target ;Alias=syslog.service通常情况下rsyslogd大小只有5M,所以将内存上限设置为8M,然后将绝对内存限制为80M。重启服务后systemctl daemon-reload systemctl restart rsyslog至此问题算是解决,还是需要后期继续跟进排查。
2021年10月13日
2,168 阅读
2 评论
2021-10-06
十年之约RSS聚合订阅服务上线
基于SpringBoot搭建的十年之约RSS聚合订阅服务正式上线,更多功能不定时更新。
2021年10月06日
2,532 阅读
49 评论
2021-10-01
JAVA使用ROME生成RSS订阅
JAVA使用ROME生成RSS订阅,ROME是一组Atom/RSS具类,它用Java来操作大部份RSS。ROME可能是目前最完善的开源聚合工具, ROME 支持绝大多数的RSS协议。
2021年10月01日
508 阅读
0 评论
2021-09-30
Java线程等待
最近十年之约的RSS订阅升级了,原本订阅地址失效了,不想错失大佬们发表的精彩博文,故向创始人申请了一个API权限。 谁知道大量请求造成错误: 429 Too Many Requests , 后来发现是我请求过于频繁了。我就想到可以将线程等待几秒再执行,每天大概就请求接口这一次,不在乎数据是否实时。所以找到以下方法并做个记录。方法一:通过线程的sleep方法在需要程序等待的地方加入这个语句,实现让程序等待,这里的参数1000是以毫秒为单位,即这语句可以让程序等待1秒。Thread.currentThread().sleep(1000); 方法二:TimeUnit类里的sleep方法TimeUnit类提供的方法,其实底层调用的也是Thread类的sleep方法,让程序进行等待。只不过他在上层根据时间单位进行了封装,如下列代码,共有7种可以选择,可以方便的选择自己需要的时间单位进行使用。TimeUnit.DAYS.sleep(1);//天 TimeUnit.HOURS.sleep(1);//小时 TimeUnit.MINUTES.sleep(1);//分 TimeUnit.SECONDS.sleep(1);//秒 TimeUnit.MILLISECONDS.sleep(1000);//秒 TimeUnit.MICROSECONDS.sleep(1000);//微妙 TimeUnit.NANOSECONDS.sleep(1000);//纳秒
2021年09月30日
330 阅读
2 评论
2021-09-15
自动推送jar包到nexus私服
每次手动上传都特别麻烦,所以就简单研究了一下自动推送。首先在你要推送jar包的项目的pom文件中,加入如下配置:<distributionManagement> <repository> <!-- 要和下边配置id一直 --> <id>nexus-test</id> <name>admin</name> <!-- 你要推送的地址 --> <url>http://nexus.bcrjl.com/repository/maven-releases/</url> </repository> </distributionManagement>在 Maven 设置文件settings.xml中添加以下配置:<servers> <server> <id>nexus-test</id> <!-- 登录的用户名 --> <username>admin</username> <!-- 登录的密码 --> <password>admin123</password> </server> </servers>如果推送的时候出现 500 或者 404 错误,请前往 Nexus 后台修改仓库的 Deployment policy 为 Allow redeploy然后在 IDEA 或者 Maven 中执行clean 、 package 、 deploy 就可以推送成功了。
2021年09月15日
360 阅读
2 评论
2021-09-01
docker部署java项目时间不正常
查看 docker 中 java 项目打印的日志发现,时间相差 8 个小时。考虑是时区的问题。解决方案Dockerfile 文件加入时区配置RUN echo "Asia/Shanghai" > /etc/timezonedocker run 增加参数-v /etc/localtime:/etc/localtimeeg:启动命令docker run -d --name "hone" -v /etc/localtime:/etc/localtime -p 8080:8080 hone
2021年09月01日
255 阅读
0 评论
2021-08-15
Centos7使用yum安装jdk1.8
系统版本[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 检测系统是否安装安装之前先查看一下有无系统自带jdk[root@localhost ~]# rpm -qa |grep java [root@localhost ~]# rpm -qa |grep jdk [root@localhost ~]# rpm -qa |grep gcj如果有就使用批量卸载命令rpm -qa | grep java | xargs rpm -e --nodeps yum安装jdk[root@localhost ~]# yum install java-1.8.0-openjdk* -y安装完成,查看系统版本[root@localhost ~]# java -version openjdk version "1.8.0_302" OpenJDK Runtime Environment (build 1.8.0_302-b08) OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)默认jre jdk 安装路径是 /usr/lib/jvm 下面参考网址:https://www.cnblogs.com/52lxl-top/p/9877202.html
2021年08月15日
257 阅读
0 评论
1
2
3
4