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

石家庄展为网络公司关键词首页排名优化

石家庄展为网络公司,关键词首页排名优化,访问不了服务器的网站,柳城企业网站建设公司JVM系统变量说明 在java应用中,JVM系统变量指的是通过System.getProperty("xxx")能获取的变量。可以通过在jvm的启动参数中添加-Dkeyvalue来进行键值对的配置。其灵活性和高优先级特性可以使其成为解决复杂场景问题中的“瑞士军刀”。 JVM系统变量有如下…

JVM系统变量说明

在java应用中,JVM系统变量指的是通过System.getProperty("xxx")能获取的变量。可以通过在jvm的启动参数中添加-Dkey=value来进行键值对的配置。其灵活性和高优先级特性可以使其成为解决复杂场景问题中的“瑞士军刀”。

JVM系统变量有如下的优势

  • 优先级最高,大于配置文件(如application.yml)
  • 即使生效,无需等待spring框架初始化就可以使用
  • 跨平台通用,jvm启动时注入,与操作系统无关

接下来看一下JVM参数使用

JVM系统变量使用

一个简单的springboot项目配置如下

server:port: 9091mybatis:typeAliasesPackage: com.tml.mouseDemo.modelmapperLocations: classpath:mapper/*.xmlspring:datasource:driver-class-name: org.h2.Driverurl: jdbc:h2:mem:db_users;MODE=MYSQL;INIT=RUNSCRIPT FROM 'classpath:sql/init.sql'username: tmlpassword: helloTmlh2:console:enabled: truelogging:level:com.tml.mouseDemo.data.*: debugconfig: classpath:logback.xmltml:name : helloWorld

一个简单的测试类

package com.tml.mouseDemo.job;import com.tml.mouseDemo.mapper.UserMapper;
import com.tml.mouseDemo.model.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;import java.util.List;@Service
@Slf4j
public class MyCoreJob {@Autowiredprivate UserMapper userMapper;@Value("${tml.name:}")private String name;@Scheduled(cron = "0/10 * * * * ?")public void testOk(){log.info("testOk,name:{}", name);List<User> list = userMapper.listByName("tml");log.info("oneUser:{}", list.size());}
}

直接运行springboot主类,运行结果,如下

现在在启动参数中增加JVM系统变量,如下

 

运行结果如下

 

从这个简单的代码案例中,可以发现JVM系统变量的优先级确实是高于application.yml配置文件的,可以通过这个来覆盖配置文件中的变量。 

生效时间块,这个是毫无疑问的,可以利用这个特点,在框架中去使用。比如在logback框架中就有读取JVM系统变量的值

需要注意的是,获取jvm系统变量可能会出现运行时异常SecurityException,为了保障系统的健壮,需要手动处理这个异常,避免将异常抛给调用方。

    /*** Very similar to <code>System.getProperty</code> except that the* {@link SecurityException} is absorbed.** @param key The key to search for.* @return the string value of the system property.*/public static String getSystemProperty(String key) {try {return System.getProperty(key);} catch (SecurityException e) {return null;}}

 JVM系统变量应用场景示例

利用灵活的配置属性调整代码逻辑

比如,在一个需要登录的web系统中,为了方便本地测试,可能会注释掉与权限相关的代码逻辑,这样做是没有问题的,但是不够好,可能会把注释的代码也提交上去了,这个时候,就可以使用System.getProperties("xxx")来进行优化代码,本地启动的时候添加对应的jvm参数,生产环境去掉这个jvm参数

这样做的好处就是,大家直接将代码clone下来,就能本地debug调试,而不需要本地做额外的一些代码修改,大大提升效率

比如这样

public class AuthInterceptor implements HandlerInterceptor {// 定义系统属性的Key(避免硬编码字符串)private static final String AUTH_DISABLE_KEY = "auth.disable";@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {// 检查是否启用了权限绕过开关if (Boolean.parseBoolean(System.getProperty(AUTH_DISABLE_KEY, "false"))) {return true; // 本地测试跳过所有权限校验}// 正式环境的权限校验逻辑User user = (User) request.getAttribute("currentUser");if (!user.hasPermission("admin")) {throw new AuthException("无权限访问");}return true;}
}

 本地的jvm启动

# 添加JVM参数临时禁用权限校验
java -Dauth.disable=true -jar app.jar

生产环境的jvm启动

# 不添加参数,权限校验正常生效
java -jar app.jar 

元数据传递标识身份

# 为微服务实例添加唯一标识
java -Dapp.instance.id=$(uuidgen) -jar app.jar

 注意:这里的uuidgen是一个linux bash命令,返回的是一个uuid的字符串

在日志和Metrics中携带实例ID,便于分布式追踪和监控

JVM系统变量注意事项

在使用jvm系统变量的时候,需要注意点如下

  1. 避免错误的覆盖,在配置jvm参数的时候,全局检索一下
  2. 注意System.getProperties()可能会抛出SecurityException带来的问题

那么,朋友们,你们在使用JVM系统变量来解决什么问题呢?欢迎评论区留言~

http://www.dtcms.com/wzjs/224307.html

相关文章:

  • 网站制作xiu021今日西安头条最新消息
  • 最近高清免费资源seo公司品牌哪家好
  • 今日国内新闻热点seo优化外包公司
  • 济南网站建设第六网建南宁seo手段
  • 建立网站的方法网络广告的概念
  • 网站做转链接违反版权吗肇庆seo按天计费
  • 微商网站如何做线上营销课程
  • 百度竞价找谁做网站网络营销推广的基本手段
  • 不用登录的小游戏网站nba最新排名东西部
  • 科技公司标志设计衡阳seo优化推荐
  • 帮别人做彩票网站北京seo实战培训班
  • 响水做网站哪家好推广app赚佣金平台有哪些
  • 网站建设南京seo搜狗
  • 怎么看网站有没有被收录上海seo公司排名
  • 乐山市建设局网站百度卖货平台
  • wordpress script网络seo排名
  • 做视频网站需要流量软文的概念是什么
  • 大气学校网站模板长沙网站托管seo优化公司
  • 网站建设undefined百度信息流效果怎么样
  • 创同盟做网站营销推广方式
  • 简述网站设计要遵循哪些原则网络媒体
  • 网站未备案可以做经营活动吗经典的软文广告
  • 单页面 网站怎么做的做百度推广多少钱
  • 做网站支持提现支付宝舆情信息在哪里找
  • 做一个网站需要怎么做免费优化网站
  • 网站建设网站网站建设网站加拿大搜索引擎
  • 怎么做网站推广临沂哈尔滨企业网站模板建站
  • 网站推广广告词seo关键词有话要多少钱
  • 做众筹的网站有几个北京网站优化方案
  • 用ppt做网站方法广州seo公司排名