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

做的好的响应式网站重庆seo排名电话

做的好的响应式网站,重庆seo排名电话,普通网站建设费用,西安网站建设设计获取 Spring 应用上下文 使用工具类 如果你的项目中有一个工具类实现了 ApplicationContextAware 接口,如 cn.shutdown.pf.utils.SpringContextUtils,可以使用该类获取 ApplicationContext: Component public final class SpringContextUt…

获取 Spring 应用上下文

使用工具类

如果你的项目中有一个工具类实现了 ApplicationContextAware 接口,如 cn.shutdown.pf.utils.SpringContextUtils,可以使用该类获取 ApplicationContext

@Component
public final class SpringContextUtils implements ApplicationContextAware {private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {SpringContextUtils.applicationContext = applicationContext;}public static ApplicationContext getApplicationContext() {return applicationContext;}
}

使用 OGNL 获取

在 Arthas 中,使用 ognl 命令结合工具类获取 ApplicationContext

ognl -c <classLoaderHash> '#context=@cn.shutdown.pf.performance.utils.SpringContextUtils@getApplicationContext()'

获取类加载器哈希值

使用 sc 命令

在 Arthas 中,使用 sc 命令可以查看类的详细信息,包括类加载器的哈希值。例如,查看 SpringContextUtils 类的类加载器哈希值:

sc -d cn.shutdown.pf.performance.utils.SpringContextUtils

输出示例:

 class-info        cn.shutdown.pf.performance.utils.SpringContextUtilscode-source       nested:/app/web.jar/!BOOT-INF/classes/!name              cn.shutdown.pf.performance.utils.SpringContextUtils...class-loader      +-org.springframework.boot.loader.launch.LaunchedClassLoader@660591fb+-jdk.internal.loader.ClassLoaders$AppClassLoader@251a69d7+-jdk.internal.loader.ClassLoaders$PlatformClassLoader@89c10b7classLoaderHash   660591fb

在输出中,classLoaderHash 字段显示了类加载器的哈希值,这里是 660591fb

使用 ognl 命令

你也可以使用 ognl 命令直接获取类加载器的哈希值。例如:

ognl '@cn.shutdown.pf.performance.utils.SpringContextUtils@getClass().getClassLoader().hashCode()'

这将返回类加载器的哈希值。

调用 Bean 方法

调用无参数方法

获取到 ApplicationContext 后,可以获取 Bean 并调用其无参数方法:

ognl -c <classLoaderHash> '#context=@cn.shutdown.pf.performance.utils.SpringContextUtils@getApplicationContext(), #bean=#context.getBean("brokerService"), #bean.someMethod()'

调用有参数方法

如果方法有参数,直接在调用时传入参数值:

ognl -c <classLoaderHash> '#context=@cn.shutdown.pf.performance.utils.SpringContextUtils@getApplicationContext(), #bean=#context.getBean("brokerService"), #bean.orderChildPay("CYD2024122923468019")'

调用方法并传入对象参数

当方法需要一个对象作为参数时,需要在 OGNL 表达式中创建该对象并设置其属性:

ognl -c <classLoaderHash> '#context=@cn.shutdown.pf.utils.SpringContextUtils@getApplicationContext(), #param=new com.yourpackage.BrokerOrderChildUpdateMqParam(), #param.setChildNo("DD2024122923468019"), #param.setOrderNo("12345"), #bean=#context.getBean("brokerServiceImpl"), #bean.orderChildPay(#param)'

查看 Spring Bean 名称

使用 vmtool 命令

如果你的 Arthas 支持 vmtool 命令,可以使用以下命令查看所有注册的 Bean 名称:

vmtool --action getInstances --className org.springframework.context.ApplicationContext --express 'instances[0].getBeanDefinitionNames()'

使用 ognl 命令

如果不支持 vmtool 命令,可以使用 ognl 命令结合 ApplicationContext 获取 Bean 名称:

ognl -c <classLoaderHash> '#context=@cn.shutdown.pf.utils.SpringContextUtils@getApplicationContext(), #context.getBeanDefinitionNames()'

常见问题及解决方法

ClassNotFoundException

  • 确保类路径正确,类已编译并打包到应用中。
  • 使用 sc 命令检查类加载器信息,确保使用正确的类加载器。

NoSuchBeanDefinitionException

  • 确认 Bean 名称正确,检查类上的注解(如 @Component@Service)。
  • 确保 Spring 组件扫描路径包含了 Bean 类所在的包路径。
  • 使用 Arthas 的 bean 命令(如果支持)或 ognl 命令列出所有 Bean 名称,确认 Bean 是否存在。

方法调用返回 null

  • 方法逻辑导致返回 null,检查方法内部逻辑和业务条件。
  • 方法业务逻辑设计为返回 null,需要根据业务需求处理返回值。

注意事项

  • 确保 Arthas 版本与操作系统和应用架构兼容。
  • 使用正确的类加载器哈希值,可以通过 sc 命令获取。
  • 调用方法时,确保方法签名与传入的参数类型和数量匹配。
  • 在生产环境中使用 Arthas 时,注意安全和性能影响,谨慎操作。
http://www.dinnco.com/news/34449.html

相关文章:

  • 微信网站开发技术seo短视频
  • 重庆购务网站建设域名查询ip138
  • 培训网站html阿里指数网站
  • 免费做计算机题的网站域名解析ip138在线查询
  • 长沙seo优化推荐seo营销外包公司
  • 如何自己做外贸网站百度app怎么找人工客服
  • 哈尔滨网站建设制作肇庆seo外包公司
  • 二维码生成器 制作鄞州seo服务
  • 平台推广网站seo收费标准多少
  • 如何从建设局网站上更换职称人员seo专业课程
  • 优秀的国风网页设计欣赏优化的近义词
  • 佛山网站建设优化企业我要学电脑哪里有短期培训班
  • 如何建设和优化网站seo优化中商品权重主要由什么决定
  • 如何做教育公司网站郑州官网网站推广优化
  • 重庆有网站公司免费百度seo引流
  • 网站教程视频号关键词搜索排名
  • 哪些网站可以做花店推广百度网盘网址是多少
  • 雄安建站服务灰色词首页排名接单
  • 湛江做网站苏州厂商百度一下首页
  • wordpress iis建站最热门的短期培训课程
  • 阿里云网站域名绑定网上的推广公司
  • 抖音引流推广一个30元西安百度关键词优化排名
  • 网站备案是否收费标准第一推广网
  • 丰台区的建设网站网站模板价格
  • 网站后台管理员扫描kol推广是什么意思
  • 17网站一起做网店登录seo体系
  • 怎么自己做网站赚钱深圳外贸网络推广
  • 可以做商城网站的公司sem seo
  • 安徽网新科技有限公司网站开发整合网络营销外包
  • 用java进行网站开发网站关键词排名优化