首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Java 如何获取 IP 属地

细心小伙伴可能会发现,抖音新上线了 IP 属地功能,小伙伴在发表动态、发表评论以及聊天时候,都会显示自己 IP 属地信息 下面,我就来讲讲,Java 如何获取 IP 属地,主要分为以下几步...通过 HttpServletRequest 对象,获取用户 IP 地址 通过 IP 地址,获取对应省份、城市 首先需要写一个 IP 获取工具类,因为每一次用户 Request ...在我们获取到用户 IP 地址后,那么就可以获取对应 ip 信息了 我在 Github 冲浪时候,发现了 Ip2region 项目。...一个准确率 99.9% 离线 IP 地址定位库,0.0x 毫秒级查询,ip2region.db 数据库只有数 MB,提供了 java,php,c,python,nodejs,golang,c# 等查询绑定和...,需要下载仓库 ip2region.db 文件,然后放到 resource 目录下 然后,通过内置三种算法,分别转换用户 ip 地址     public static String getCityInfo

2.6K20

Java 面试题之 Logback 打印日志是如何获取当前方法名称

Java ,有四种方法可以获取当前正在执行方法体方法名称,分别是: 使用 Thread.currentThread().getStackTrace() 方法 使用异常对象 getStackTrace...3.匿名内部类 getClass().getEnclosingMethod()方法 这种方法是通过创建一个匿名内部类对象,然后其类对象获取当前方法方法对象,再从方法对象获取当前方法名和参数...然后我们使用 walk() 方法从上到下遍历栈帧: walk() 方法可以将堆栈帧转化为 Stream流 findFirst() 方法 Stream 流获取第一个元素,也就是堆栈顶部帧,顶部帧就代表当前正在执行方法...不知道大家有没有想过,我们在使用 Logback 日志框架打印日志时,是如何获取当前执行方法体方法名称嘞?...那么到这里我就可以下一个结论了, Logback 日志框架打印日志时,就是使用异常对象 getStackTrace() 方法来获取当前执行方法方法名称

21030

Java 面试题之 Logback 打印日志是如何获取当前方法名称

Java ,有四种方法可以获取当前正在执行方法体方法名称,分别是: 使用 Thread.currentThread().getStackTrace() 方法 使用异常对象 getStackTrace...然后我们使用 walk() 方法从上到下遍历栈帧: walk() 方法可以将堆栈帧转化为 Stream 流 findFirst() 方法 Stream 流获取第一个元素,也就是堆栈顶部帧,顶部帧就代表当前正在执行方法...不知道大家有没有想过,我们在使用 Logback 日志框架打印日志时,是如何获取当前执行方法体方法名称嘞?...如上,我们只需要看下 le.getCallerData() 方法堆栈是哪里获取,就能知道本题答案了。...那么到这里我就可以下一个结论了, Logback 日志框架打印日志时,就是使用异常对象 getStackTrace() 方法来获取当前执行方法方法名称

35360

教你如何快速 Oracle 官方文档获取需要知识

11G 官方文档:https://docs.oracle.com/cd/E11882_01/server.112/e40402/toc.htm 这里以 11g R2 官方文档为例: 今天来说说怎么快速官方文档得到自己需要知识...( HTML点进去之后最下面有个index, ctrl+f查找比较快)还包含一些其他比如说数据库硬性限制、等待事件名称、后台进程描述等。...具体还没深入了解,但是感觉还是比较先进好用,当 plsql没有办法完成任务时候,可以使用 java存储过程来解决,比如说想要获取主机目录下文件列表。...SQLJ提供了plsql 和java集成简便方法。...提供一个比较简单例子,可以在 java 存储过程输入下面的代码: { element = list[i]; #sql { INSERT INTO DIR_LIST

7.7K00

如何在代码获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...String version = this.getClass().getPackage().getImplementationVersion() 但是用IDE启动发现version=null,不过用java...配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... <!...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...API获取项目构建版本信息方法,有什么用呢?

3.1K20

如何在代码获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...String version = this.getClass().getPackage().getImplementationVersion() 但是用IDE启动发现version=null,不过用java...配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... <!...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...API获取项目构建版本信息方法,有什么用呢?

5.6K20

后端 | Java 利用substring()和indexOf()字符串获取指定字符

9之间字符(不包含9) * str.indexOf("/"); -->返回str“/”第一次出现时下标 * str.indexOf("/", 5); -->返回跳过...,我们要从str取出name->Riven String riven = str.substring(4, 9); // 这里传入R下标4,再传入第二个“/”下标9,拿到就是Riven.../*第二种情况:不知道字符下标,但是知道分割字符是“/”,可以用indexOf()获取字符“/”下标*/ // 第二种情况我们获取id->id1 String...id = str.substring(0, str.indexOf("/")); /*善于思考同学已经发现,第二种情况我们只能获取id,想拿后面其他数据就很难办了,因为我们有两个“...”之间数据就是我们name字段了 // indexOf()可以传两个参数,第一个是要寻找子字符串,第二个是哪个下标位置开始寻找,这里传入i+1就是跳过了第一个“/”之前下标

3K40

Java类加载机制谈起:聊聊Java如何实现热部署(热加载)

本文将探索如何在不破坏 Java 虚拟机现有行为前提下,实现某个单一类热部署,让系统无需重启就完成某个类更新。...这里却存在一个问题,同一个类加载器无法同时加载两个相同名称类,由于不论类结构如何发生变化,生成类名不会变,而 classloader 只能在虚拟机停止前销毁已经加载类,这样 classloader...所有新式IDE(包括Eclipse、IDEA和NetBeans)都支持这一技术,Java 5开始,这一功能还通过Instrumentation API直接提供给Java应用使用。...Java EE标准制定并未怎么关注开发周转期(Turnaround)(指的是对代码做修改到观察到改变在应用造成影响这一过程所花费时间)。...JRebel与应用服务器整合在一起,当某个类或是资源被更新时,其被工作区而不是归档文件读入。

2.9K20

Java如何随机获取List元素?实现代码一次搞定!

引言在Java开发,我们经常会遇到从一个List随机获取元素需求。可能是需要随机展示广告、抽奖活动、随机推荐等场景。本文将介绍几种简单而高效方法来实现这个功能,并给出相应代码示例。...方法一:使用Random类我们可以利用java.util.Random类来生成一个随机索引,然后根据该索引List获取对应元素。...下面是使用Random类实现随机获取元素示例代码:import java.util.List;import java.util.Random;public class RandomElementSelector...方法二:使用ThreadLocalRandom类Java 7开始,我们可以使用更高效java.util.concurrent.ThreadLocalRandom类来生成随机数。...这个方法将会随机打乱List元素顺序。

1.5K40

如何jdbc获取数据库建表语句信息(表字段名称表字段类型表字段注释信息表字段长度等等)

* 如何jdbc获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字段长度等等) * 1,表字段名称 * 2,表字段类型 * 3,表字段注释信息 这里介绍3种方式,如下:...第二种方式:直接jdbc数据库连接Connection实例获取 三种方式获取数据有一些区别 第一种方式不能获取信息比较丰富,但是唯一不能获取是表字段备注信息,其他信息基本都有了 第二种方式可以获取完整建表语句...,但是不太好用,需要自己解析表字段,如果自己可以解析的话,建议使用 第三种方式能够获取到表字段备注信息,但是获取不到表字段对应java类型 do not talk,show me code. package....*; /** * 如何jdbc获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字段长度等等) * 1,表字段名称 * 2,表字段类型 * 3,表字段注释信息 */ @Slf4j...create table user_pop_info how2ObtainFieldInfoFromJdbc.method2(); // 第二种方式:直接jdbc数据库连接Connection实例获取

4.5K10
领券