[每周一更]-(第46期):Linux下配置Java所需环境及Java架构选型

在这里插入图片描述

Linux下配置Java所需环境及Java架构选型

一、配置基础环境

1.配置tomcat 环境变量

wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.8/src/apache-tomcat-10.1.8-src.tar.gz
tar -zxvf apache-tomcat-10.1.8-src.tar.gz
在/etc/profile 末尾追加export CATALINA_HOME="/usr/local/tomcat"
export CATALINA_BASE="/usr/locall/tomcat"source /etc/prodfile  使配置立即生效在tomcat的主目录下bin文件中有starup.sh shutdown.sh 测试tomcat是否安装成功.

2.配置jdk的环境变量

打开/etc/profile

JAVA_HOME="/usr/local/jdk"
JAVA_BIN="/usr/local/jdk/bin"
PATH=$PATH:$JAVA_BIN
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH!wq 保存退出
source /etc/profile 使配置立即生效哦

3.jdk解压并创建软链接

ln -s /usr/local/jdk_source  /usr/local/jdk

4.赋予用户权限 chown

chmod 777 -R /usr/local/example

5. 修改.bash_profile文件

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。

  • 用文本编辑器打开用户目录下的.bash_profile文件
  • 在.bash_profile文件末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6.给linux增加用户,并修改密码

useradd xiaohu 新增用户
passwd 123456  添加密码
userdel xiaohu 删除用户
rm -rf xiaohu 删除用户xiaohu所在目录

7.今天用Openssl生成证书,后来要涉及生成 java keytool 的 jks格式的证书,结果输入keytool

bash: keytool: command not found…

结果找了半天才发现javahome都没设置。。也是郁闷。。希望对遇到同样问题的有帮助
配置环境变量

vi /etc/profile

i插入
添加以下三句export到文件最后 注意JAVA_HOME的目录为你解压jdk的目录版本为你下载的jdk版本

export JAVA_HOME=/java/jdk1.7.0_79
export  CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

8.tomcat配置https

安装证书

Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一。

文件说明:

  1. 证书文件214279090710514.pem,包含两段内容,请不要删除任何一段内容。
  1. 如果是证书系统创建的CSR,还包含:证书私钥文件214279090710514.key、PFX格式证书文件214279090710514.pfx、PFX格式证书密码文件pfx-password.txt。
1、证书格式转换

在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含214279090710514.pem文件,还需要将私钥文件拷贝到cert目录,命名为214279090710514.key;如果是系统创建的CSR,请直接到第2步。

到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:

openssl pkcs12 -export -out 214279090710514.pfx -inkey 214279090710514.key -in 214279090710514.pem

2、PFX证书安装

找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443"标签,增加如下属性:

keystoreFile=“cert/214279090710514.pfx”
keystoreType=“PKCS12”

#此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码
keystorePass=“证书密码”
完整的配置如下,其中port属性根据实际情况修改:

<Connector port="8443"protocol="HTTP/1.1"SSLEnabled="true"scheme="https"secure="true"keystoreFile="cert/214279090710514.pfx"keystoreType="PKCS12"keystorePass="证书密码"clientAuth="false"SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
3、JKS证书安装(帮助)
( 1 ) 使用java jdk将PFX格式证书转换为JKS格式证书(windows环境注意在%JAVA_HOME%/jdk/bin目录下执行)

keytool -importkeystore -srckeystore 214279090710514.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS

回车后输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。

( 2 ) 找到安装 Tomcat 目录下该文件Server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443"标签,增加如下属性:

keystoreFile=“cert/your-name.jks”
keystorePass=“证书密码”
完整的配置如下,其中port属性根据实际情况修改:

<Connector port="8443"protocol="HTTP/1.1"SSLEnabled="true"scheme="https"secure="true"keystoreFile="cert/your-name.jks"keystorePass="证书密码"clientAuth="false"SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

( 注意:不要直接拷贝所有配置,只需添加 keystoreFile,keystorePass等参数即可,其它参数请根据自己的实际情况修改 )

4、 重启 Tomcat。
5、 通过 https 方式访问您的站点,测试站点证书的安装配置,如遇到证书不信任问题,请查看帮助视频。

二、Java架构选型结构图

在这里插入图片描述

1、基础对比

  • Spring Cloud基于Spring Boot提供了一套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器等组件,除了基于Netflix的开源组件做高度抽象封装外,还有一些选型中立的开源组件。
  • Spring Boot可以离开Spring Cloud单独使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖关系。
  • Spring Boot专注于快速方便地开发单个个体微服务,Spring Cloud关注全局的服务治理框架。
  • Spring Cloud是关注全局的微服务协调整理治理框架,它将Spring Boot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由、微代理、事件总栈、全局锁、决策竞选、分布式会话等等集成服务。

在这里插入图片描述

2、技术细节

  • 1、Showdoc做接口文档
  • 2、Coding做仓库
  • 3、Jenkins做自动化部署
  • 4、Mysql数据库采用阿里云RDS
  • 5、Java版本 1.8 (8,11,17是长期服务版本)
    jdk(java development kit)是java的开发工具包,jre (java runtime environment) 是java程序的运行环境,jre是jdk的一个子集。
  • 6、数据存储:OSS,ECS等
  • 7、服务器阿里云ECS,基云惠医账户
  • 8、Redis服务器,可添加
  • 9、接口压力测试 Jmeter,可添加(性能指标,压力测试)
  • 10、maven版本
    Maven就是是专门为Java项目打造的管理和构建工具,它的主要功能有: 提供了一套标准化的项目结构; 提供了一套标准化的构建流程(编译,测试,打包,发布……); 提供了一套依赖管理机制。
  • 11、Nginx版本 1.20.2稳定版本

三、JAVA - AES算法加密明文

/**
* @author ifanatic.cn
* @see AES算法加密明文
* @param data 明文
* @param key 密钥,长度16
* @param iv 偏移量,长度16
* @return 密文
*/public static byte[] encryptAES(byte[] dataBytes,String key,String iv) throws Exception {try {Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");int blockSize = cipher.getBlockSize();//byte[] dataBytes = data.getBytes();int plaintextLength = dataBytes.length;if (plaintextLength % blockSize != 0) {plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));}byte[] plaintext = new byte[plaintextLength];System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());cipher.init(Cipher.ENCRYPT_MODE, keyspec);byte[] encrypted = cipher.doFinal(plaintext);return encrypted;} catch (Exception e) {e.printStackTrace();return null;}
}/**
* @author ifanatic.cn
* @see AES算法解密密文
* @param data 密文
* @param key 密钥,长度16
* @param iv 偏移量,长度16
* @return 明文
*/
public static byte[] decryptAES(byte[] encrypted,String key,String iv) throws Exception {try {Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());cipher.init(Cipher.DECRYPT_MODE, keyspec);byte[] original = cipher.doFinal(encrypted);return original;} catch (Exception e) {e.printStackTrace();return null;}
}/**
* 编码
* @param byteArray
* @return
*/
public static String Base64HelperEncode(byte[] byteArray) {return new String(new Base64().encode(byteArray));
}/**
* 解码
* @param base64EncodedString
* @return
*/
public static byte[] Base64HelperDecode(String base64EncodedString) {return new Base64().decode(base64EncodedString);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序算法-选择插入排序

文章目录 排序算法-选择插入排序 排序算法-选择插入排序 /// <summary>/// 选择插入排序/// Krystal 2023-11-10 09:02:06 每一次找一个最小的放到正确的位置上/// 直接选择排序通过每一轮的比较&#xff0c;找到最大值和最小值&#xff0c;将最大值的节点和右边交换&…

【快速全面掌握 WAMPServer】10.HTTP2.0时代,让 WampServer 开启 SSL 吧!

网管小贾 / sysadm.cc 如今的互联网就是个看脸的时代&#xff0c;颜值似乎成了一切&#xff01; 不信&#xff1f;看看那些直播带货的就知道了&#xff0c;颜值与出货量绝对成正比&#xff01; 而相对于 HTTP 来说&#xff0c;HTTPS 绝对算得上是高颜值的帅哥&#xff0c;即安…

【STM32】SPI通信

1 SPI通信 SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是由Motorola公司开发的一种通用数据总线 四根通信线&#xff1a;SCK&#xff08;Serial Clock&#xff0c;串行时钟&#xff09;、MOSI&#xff08;Master Output Slave Input&am…

使用anaconda创建爬虫spyder工程

1.由于每个工程使用的环境都可能不一样&#xff0c;因此一个好的习惯就是不同的工程都创建属于自己的环境&#xff0c;在anaconda中默认的环境是base&#xff0c;我们现在来创建一个名为spyder的环境&#xff0c;专门用于爬虫工程&#xff1a; //括号中名字&#xff0c;代表当…

初识大数据,一文掌握大数据必备知识文集(7)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述

&#x1f436;5.1 hdfs的概念 HDFS分布式文件系统,全称为:Hadoop Distributed File System。 它是一个文件系统&#xff0c;用于存储文件&#xff0c;通过目录树来定位文件&#xff1b;其次&#xff0c;它是分布式的&#xff0c;由很多服务器联合起来实现其功能&#xff0c;集…

Java集合/泛型篇----第五篇

系列文章目录 文章目录 系列文章目录前言一、说说LinkHashSet( HashSet+LinkedHashMap)二、HashMap(数组+链表+红黑树)三、说说ConcurrentHashMap前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通…

miniqmt配置

1 下载安装qmt 2 将安装目录下的 xtquant 目录复制到 python安装目录 的相同路径下 3 测试 from xtquant import xtdata def on_data (datas):#回调函数 print(datas) seq xtdata.subscribe_whole_quote(code_list[‘002306.SZ’], callbackon_data) time.sleep(10) xtda…

深度学习——PIL和OpenCV

PIL 官方文档 格式互转 opencv cv2.imread() 参数&#xff1a; filepath&#xff1a;读入imge的完整路径 flags&#xff1a;标志位&#xff0c;{cv2.IMREAD_COLOR&#xff0c;cv2.IMREAD_GRAYSCALE&#xff0c;cv2.IMREAD_UNCHANGED} cv2.IMREAD_COLOR&#xff1a;默认参数&…

软件测试/测试开发丨接口测试学习笔记分享

一、Mock 测试 1、Mock 测试的场景 前后端数据交互第三方系统数据交互硬件设备解耦 2、Mock 测试的价值与意义 不依赖第三方数据节省工作量节省联调 3、Mock 核心要素 匹配规则&#xff1a;mock的接口&#xff0c;改哪些接口&#xff0c;接口哪里的数据模拟响应 4、mock实…

编程式导航传参

(通过js代码实现跳转) 按照path进行跳转 第一步&#xff1a; 在app.vue中(前提是规则已经配置好) <template><div id"app">App组件<button clicklogin>跳转</button><!--路由出口-将来匹配的组件渲染地方--><router-view>&l…

电池管理系统BMS中SOC算法通俗解析(一)

SOC(state of ge)估计算法是电池管理系统(BMS)开发应用的关键技术之一&#xff0c;传统燃油车有油表&#xff0c;能跑多远&#xff0c;看一眼心里就有数了&#xff0c;换成电动汽车&#xff0c;SOC就是电动汽车的”油表”&#xff0c;所以SOC的准确、稳定与否非常重要。SOC的定…