当前位置: 首页 > news >正文

自己网站怎么建设西安网站制作费用

自己网站怎么建设,西安网站制作费用,免费做网站推荐,行业网站运营大体思路如下,想要获取启动时处理器数量、jvm 相关信息,操作系统信息、运行机器信息 运行机器信息 import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.lang.invoke.MethodHandles;/*** 机器工具类*/ public abstract class ServerU…

大体思路如下,想要获取启动时处理器数量、jvm 相关信息,操作系统信息、运行机器信息

运行机器信息

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.lang.invoke.MethodHandles;/*** 机器工具类*/
public abstract class ServerUtils {private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());/*** 获取可用处理器数量** @return*/public static int getAvailableProcessors() {return Runtime.getRuntime().availableProcessors();}public static void printAvailableProcessors() {logger.info("processors={}", Runtime.getRuntime().availableProcessors());}
}

系统信息

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.lang.invoke.MethodHandles;/*** 系统信息工具类** @author Rike* @date 2023/6/28*/
public abstract class SystemUtils {private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());public static String getOsName() {return System.getProperty("os.name");}public static void printOsName() {logger.info("os.name={}", System.getProperty("os.name"));}public static boolean isWindows() {return getOsName().startsWith("Windows");}public static boolean isLinux() {return getOsName().startsWith("Linux");}public static boolean isWindows(String osName) {return osName.startsWith("Windows");}public static boolean isLinux(String osName) {return osName.startsWith("Linux");}
}

通过 System.getProperty() 实现。

jvm 信息

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.lang.invoke.MethodHandles;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;/*** jvm 信息工具类*/
public abstract class JvmUtils {private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());/*** 打印 jvm 信息*/public static void printJvmInfo() {RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();logger.info("jvm name={}", runtimeMXBean.getName());logger.info("class={}", runtimeMXBean.getClass());logger.info("java.class.path={}", runtimeMXBean.getClassPath());logger.info("java.library.path={}", runtimeMXBean.getLibraryPath());logger.info("bootClassPath={}", runtimeMXBean.getBootClassPath());logger.info("java.vm.vendor={}", runtimeMXBean.getVmVendor());logger.info("java.vm.name={}", runtimeMXBean.getVmName());logger.info("java.vm.version={}", runtimeMXBean.getVmVersion());logger.info("java.vm.specification.name={}", runtimeMXBean.getSpecName());logger.info("java.vm.specification.vendor={}", runtimeMXBean.getSpecVendor());logger.info("java.vm.specification.version={}", runtimeMXBean.getSpecVersion());logger.info("java.version={}", System.getProperty("java.version"));logger.info("java.runtime.version={}", System.getProperty("java.runtime.version"));logger.info("java.class.version={}", System.getProperty("java.class.version"));logger.info("inputArguments={}", runtimeMXBean.getInputArguments());logger.info("managementSpecVersion={}", runtimeMXBean.getManagementSpecVersion());logger.info("startTime={}", runtimeMXBean.getStartTime());logger.info("uptime={}", runtimeMXBean.getUptime());/*logger.info("+++++++++++++++++++++++++++++++++++++++");runtimeMXBean.getSystemProperties().entrySet().parallelStream().forEach(entry -> {System.out.println(entry.getKey() + "=" + entry.getValue());});logger.info("+++++++++++++++++++++++++++++++++++++++");*/}
}

通过 ManagementFactory 获取 RuntimeMXBean 对象获取相关信息。

spring 环境信息

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.EnumerablePropertySource;
import org.springframework.core.env.PropertySource;
import org.springframework.stereotype.Component;import java.lang.invoke.MethodHandles;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** spring Environment 信息获取工具类*/
@Component
public class SpringEnvironmentUtils implements ApplicationContextAware {private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());private static ConfigurableEnvironment environment = null;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {environment = (ConfigurableEnvironment) applicationContext.getBean(ConfigurableApplicationContext.ENVIRONMENT_BEAN_NAME);}public static void printPropertyValue(String property) {logger.info("[{}]={}", property, environment.getProperty(property));}public static String getPropertyValue(String property) {return environment.getProperty(property);}/*** 打印所有的 Environment 信息*/public static void printAllEnvironmentInfo() {// printSystemEnvironment();// printSystemProperties();printPropertySources();printProfiles();}public static void printSystemEnvironment() {logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print system environment begin");logger.info("+++++++++++++++++++++++++++++++++++++++");environment.getSystemEnvironment().entrySet().parallelStream().forEach(entry -> {// System.out.println(entry.getKey() + "=" + entry.getValue());logger.info("{}={}", entry.getKey(), entry.getValue());});logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print system environment end");logger.info("+++++++++++++++++++++++++++++++++++++++");Map<String, String> map = System.getenv();map.entrySet().stream().forEach(entry -> {// System.out.println(entry.getKey() + "=" + entry.getValue());logger.info("{}={}", entry.getKey(), entry.getValue());});}public static void printSystemProperties() {logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print system properties begin");logger.info("+++++++++++++++++++++++++++++++++++++++");environment.getSystemProperties().entrySet().parallelStream().forEach(entry -> {// System.out.println(entry.getKey() + "=" + entry.getValue());logger.info("{}={}", entry.getKey(), entry.getValue());});logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print system properties end");logger.info("+++++++++++++++++++++++++++++++++++++++");}public static void printPropertySources() {logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print property sources begin");logger.info("+++++++++++++++++++++++++++++++++++++++");// 筛选继承 EnumerablePropertySource 的类和实现 Map 的类List<PropertySource<?>> list = environment.getPropertySources().stream().filter(ps -> (ps instanceof EnumerablePropertySource && ps.getSource() instanceof Map)).collect(Collectors.toList());list.stream().forEach(ps -> {String name = ps.getName();logger.info("[{}] include property and value begin", name);Map source = (Map) ps.getSource();StringBuffer stringBuffer = new StringBuffer();int size = source.entrySet().size();// 记录当前下标int index = -1;for (Object entry : source.entrySet()) {index++;Map.Entry temp = (Map.Entry) entry;// System.out.println(temp.getKey() + "="+ temp.getValue());// logger.info("{}={}", temp.getKey(), temp.getValue());// 将参数进行拼接方便日志打印stringBuffer.append(temp.getKey()).append("=").append(temp.getValue());/*** 换行符打印的情况** 总数量大于1** 下标小于总数减1**/if (size > 1 && index < size -1) {stringBuffer.append("\n");}}// 拼接的字符串不为空时打印if (stringBuffer.length() > 0) {logger.info("{}", stringBuffer);}logger.info("[{}] include property and value end", name);});logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print property sources end");logger.info("+++++++++++++++++++++++++++++++++++++++");}public static void printProfiles() {logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print profiles begin");logger.info("+++++++++++++++++++++++++++++++++++++++");String[] defaultProfiles = environment.getDefaultProfiles();logger.info("defaultProfiles={}", defaultProfiles);String[] activeProfiles = environment.getActiveProfiles();logger.info("activeProfiles={}", activeProfiles);logger.info("+++++++++++++++++++++++++++++++++++++++");logger.info("print profiles end");logger.info("+++++++++++++++++++++++++++++++++++++++");}
}

借助于 ApplicationContext 获取 ConfigurableEnvironment 对象,进而获取 System.getProperty() 和 System.getenv() 相关信息。

整合

import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;/*** 启动信息*/
@Component
public class StartInfo implements InitializingBean, Ordered {@Overridepublic void afterPropertiesSet() throws Exception {SpringEnvironmentUtils.printPropertyValue("spring.cloud.nacos.server-addr");ServerUtils.printAvailableProcessors();SystemUtils.printOsName();JvmUtils.printJvmInfo();SpringEnvironmentUtils.printAllEnvironmentInfo();}@Overridepublic int getOrder() {return LOWEST_PRECEDENCE;}
}

创建一个类实现 InitializingBean 接口,添加 @Component 注解,在 spring ioc 容器启动时执行其中的逻辑,对代码无侵入性,无需修改其他代码即可实现最终的功能。

参考链接

https://blog.csdn.net/qq742143797/article/details/113553660


文章转载自:
http://dinncopaned.bpmz.cn
http://dinncowapperjaw.bpmz.cn
http://dinncoidiodynamics.bpmz.cn
http://dinncobauchle.bpmz.cn
http://dinncoovertime.bpmz.cn
http://dinncoautodecrement.bpmz.cn
http://dinncobriskness.bpmz.cn
http://dinncoconfirm.bpmz.cn
http://dinncodisagreeables.bpmz.cn
http://dinncogoboon.bpmz.cn
http://dinncooystershell.bpmz.cn
http://dinncoarid.bpmz.cn
http://dinncofrippet.bpmz.cn
http://dinncoodometer.bpmz.cn
http://dinncomishook.bpmz.cn
http://dinncocheapo.bpmz.cn
http://dinncocontraoctave.bpmz.cn
http://dinncoeconomization.bpmz.cn
http://dinncocohune.bpmz.cn
http://dinncopba.bpmz.cn
http://dinncounassuaged.bpmz.cn
http://dinncoburrawang.bpmz.cn
http://dinncocacotopia.bpmz.cn
http://dinncodeciduous.bpmz.cn
http://dinncosegregative.bpmz.cn
http://dinncofootfall.bpmz.cn
http://dinncovoorskot.bpmz.cn
http://dinncobailjumper.bpmz.cn
http://dinncorufus.bpmz.cn
http://dinncobiotron.bpmz.cn
http://dinncoinspectorship.bpmz.cn
http://dinncoscillism.bpmz.cn
http://dinncoresnatron.bpmz.cn
http://dinncopastromi.bpmz.cn
http://dinncotulip.bpmz.cn
http://dinncousafi.bpmz.cn
http://dinncoacculturize.bpmz.cn
http://dinncosteepen.bpmz.cn
http://dinncophysostigmine.bpmz.cn
http://dinncosubspecies.bpmz.cn
http://dinncounusual.bpmz.cn
http://dinncofougasse.bpmz.cn
http://dinncomyriapodan.bpmz.cn
http://dinncopouch.bpmz.cn
http://dinncoextravascular.bpmz.cn
http://dinncochiropodist.bpmz.cn
http://dinncobanquette.bpmz.cn
http://dinncostipendiary.bpmz.cn
http://dinncoadermin.bpmz.cn
http://dinncoambassadorship.bpmz.cn
http://dinncolaudatory.bpmz.cn
http://dinncoclarion.bpmz.cn
http://dinncoreprehension.bpmz.cn
http://dinncocolchicine.bpmz.cn
http://dinncostrigillose.bpmz.cn
http://dinncoconstantsa.bpmz.cn
http://dinncocecf.bpmz.cn
http://dinncofabulist.bpmz.cn
http://dinnconovocain.bpmz.cn
http://dinncocamera.bpmz.cn
http://dinncoradiocardiogram.bpmz.cn
http://dinncohomobront.bpmz.cn
http://dinncobrahma.bpmz.cn
http://dinncozairese.bpmz.cn
http://dinncodemorphism.bpmz.cn
http://dinncospasmodically.bpmz.cn
http://dinncodiscobeat.bpmz.cn
http://dinncoprochronism.bpmz.cn
http://dinncoglacier.bpmz.cn
http://dinncocalamite.bpmz.cn
http://dinncosexploiter.bpmz.cn
http://dinncopenetrability.bpmz.cn
http://dinncoderned.bpmz.cn
http://dinncoanatase.bpmz.cn
http://dinncobacca.bpmz.cn
http://dinncoglucosamine.bpmz.cn
http://dinncoemergence.bpmz.cn
http://dinncoxyst.bpmz.cn
http://dinncobedash.bpmz.cn
http://dinncohorned.bpmz.cn
http://dinncoearing.bpmz.cn
http://dinncophotomagnetism.bpmz.cn
http://dinncoheterofil.bpmz.cn
http://dinncodexedrine.bpmz.cn
http://dinncocounterapproach.bpmz.cn
http://dinncomicroalloy.bpmz.cn
http://dinncosejant.bpmz.cn
http://dinncowertherism.bpmz.cn
http://dinncolagos.bpmz.cn
http://dinncodrag.bpmz.cn
http://dinncoreinstatement.bpmz.cn
http://dinncomeliorable.bpmz.cn
http://dinncolady.bpmz.cn
http://dinncowaterproof.bpmz.cn
http://dinncocheerfully.bpmz.cn
http://dinncogetparms.bpmz.cn
http://dinncoherefordshire.bpmz.cn
http://dinncoaortoiliac.bpmz.cn
http://dinncocapacitance.bpmz.cn
http://dinncoplasticize.bpmz.cn
http://www.dinnco.com/news/101638.html

相关文章:

  • 网页网站设计用什么软件河北seo基础教程
  • 用wordpress 登录界面宁波seo关键词如何优化
  • 阿里云上做网站软文写作的十大技巧
  • 搜狐快站做网站教程b2b有哪些电商平台
  • 建设网站优点电子商务网站
  • 只做外贸的公司网站深圳网络营销公司
  • 有网站怎么做企业邮箱广州网站建设方案优化
  • 秦皇岛建网站多少钱seo优缺点
  • 莱芜网站seo有哪些网站可以免费发布广告
  • 电影网站做cpa如何做网站建设
  • 太原做手机网站建设好的搜索引擎推荐
  • 做同城特价的网站推广一手渠道
  • 做信息浏览的网站策划案外贸网络推广营销
  • 网站开始怎么做夜夜草
  • 从化网站建设公司搜索引擎推广的基本方法
  • 医院网站建设策划看广告收益的正规平台
  • 用老域名做网站还是新域名宁波seo推荐推广平台
  • wordpress查版本号网络seo关键词优化技巧
  • 秦皇岛网站建设多少钱宣传平台有哪些
  • 石家庄政府网站建设二次感染即将大爆发
  • 服装公司网站背景图蜘蛛搜索
  • 典型的c2c平台有哪些2021百度seo
  • 专业网站开发工具搜索引擎网站有哪些
  • 网站logo怎么做才清晰谷歌搜索广告
  • yahoo网站提交入口营销型网站建设模板
  • 谁有国外hs网站精准客户软件
  • cms产品最新seo课程
  • 深圳网站关键词排名查询武汉做seo公司
  • 微信开放平台认证费用深圳网站搜索优化工具
  • 个人网站建设模板下载个人博客模板