科百科
当前位置: 首页 范文大全

java随机数方法的实现过程(使用JavaFaker)

时间:2023-06-17 作者: 小编 阅读量: 1 栏目名: 范文大全

最后找到了Faker这个好东西,幸运的是有Java版本:JavaFaker。不仅使用方便,而且可以设置多个领域,几秒钟内生成需要的随机数。使用Faker可以访问30多个不同的领域,为几乎每个用例创建随机数。此外,Faker库还支持返回本地化随机数据。如果指定了locale请确保在开发库的支持列表中。可以检查对应的.yml文件确认已经有对应的英文版本。

原型开发好以后,通常需要一些展示数据。如果没有实际数据,怎样为 Java 程序生成一些有意义的随机数据?

我用过 UUID 和 ThreadLocalRandom 来生成随机数,但是能力有限,无法提供特定领域的随机数据。于是,我开始寻找更好的解决方案。最后找到了 Faker 这个好东西,幸运的是有 Java 版本:Java Faker。不仅使用方便,而且可以设置多个领域,几秒钟内生成需要的随机数。

1. Java Faker 上手

Maven项目中添加 Java Faker 依赖:

<dependency> <groupId>com.github.javafaker</groupId> <artifactId>javafaker</artifactId> <version>0.18</version></dependency>

使用前,创建一个 Faker 对象:

Faker faker = new Faker();

Faker 方法调用时会随机访问底层数据,因此不需要每次都创建一个实例。Java Faker 通过 /src/main/resources 中的 .yml 获取数据。

使用 Faker 可以访问30多个不同的领域,为几乎每个用例创建随机数。可以使用流式 API 生成随机数:

String firstName = faker.name().firstName();String appName = faker.app().name();String foodIngredient = faker.food().ingredient();

包含的领域有:

  • 金融
  • 视频
  • 书籍
  • 姓名
  • 地址
  • 商务

此外还包含一些有趣的领域:

  • 尤达
  • 查克·诺里斯
  • 哈利·波特
  • 指环王

2. Java Faker 使用示例

为了演示 Java Faker,这里通过一个 REST API 返回随机数量的 person、book 和 food 对象。虽然示例采用了 Spring Boot 2.1 和 Java 11,但是其他版本也可以正常工作。

示例应用提供了不同的 Endpoint 获取随机数据:

@RestController@RequestMapping("/random")public class RandomDataEndpoint { @Autowired private ObjectMapper objectMapper; @GetMapping("/persons") public JsonNode getRandomPersons() { Faker faker = new Faker(); ArrayNode persons = objectMapper.createArrayNode(); for (int i = 0; i < 10; i) { persons.add(objectMapper.createObjectNode() .put("firstName", faker.name().firstName()) .put("lastName", faker.name().lastName()) .put("title", faker.name().title()) .put("suffix", faker.name().suffix()) .put("address", faker.address().streetAddress()) .put("city", faker.address().cityName()) .put("country", faker.address().country())); } return persons; }}

3. 返回本地化随机数据

随机数据的默认 locale 是 EN。此外,Faker 库还支持返回本地化随机数据。如果指定了 locale 请确保在开发库的支持列表中。可以检查对应的 .yml 文件确认已经有对应的英文版本。

如果指定的 locale 没有对应的翻译,比如 beers,默认会切换到英文。

Faker 构造函数参数默认为 locale:

Faker faker = new Faker(new Locale("de"));

上面的代码指定返回的随机数据为德语:

@GetMapping("/foods")public JsonNode getRandomFoods() { Faker faker = new Faker(new Locale("de")); ArrayNode foods = objectMapper.createArrayNode(); for (int i = 0; i < 10; i) { foods.add(objectMapper.createObjectNode() .put("ingredients" , faker.food().ingredient()) .put("spices", faker.food().spice()) .put("measurements", faker.food().measurement())); } return foods;}

也可以设为列出的其他 locale:

@GetMapping("/books")public JsonNode getRandomBook() { Faker faker = new Faker(new Locale("en-US")); ArrayNode books = objectMapper.createArrayNode(); for (int i = 0; i < 10; i) { books.add(objectMapper.createObjectNode() .put("author", faker.book().author()) .put("genre", faker.book().genre()) .put("publisher", faker.book().publisher()) .put("title", faker.book().title())); } return books;}

示例完整源代码可以在 GitHub 上找到。

github.com/rieckpil/blog-tutorials/tree/master/random-data-in-java-using-java-faker

    推荐阅读
  • 宸字取名的含义是什么(宸在名字中有什么寓意)

    后来,“宸”借指帝王所居,又引申为王位、帝王的代称;也指代天宫,为天帝所居之处。因此,用“宸”字给宝宝取名寓意很好,比较吉利。“煊”字指温暖、光明,因为有着火字旁,可以增添男孩的勇敢坚强。名字象征男孩积极向上,有着乐于助人之心,而且声誉极好,也是父母对男孩的期望之意。

  • 蜂蜜柚子茶减肥效果好吗 蜂蜜柚子茶是减肥的吗

    蜂蜜柚子茶含有很高的维生素C,早上喝蜂蜜柚子茶能帮助清理肠胃,下午感觉有些饿的时候喝杯蜂蜜柚子茶,可以保持血糖稳定,防治晚餐吃得太多,有利于减肥。天天和蜂蜜柚子茶能辅助减肥,但是,蜂蜜柚子茶含糖量很高,多喝容易发胖,就没有减肥的效果了。蜂蜜柚子茶什么时候喝效果最好由于这种饮品的减肥效果比较好,因此,人们最好不要空腹喝,以免引起肠胃的不适。

  • 回族的习俗(有关回族习俗介绍)

    回族的习俗围绕清真寺而居,凡是有回族的地方一般都会有清真寺,供回族穆斯林礼拜真主。回族有悠久的历史和独特古老的文化。特别是回族习俗文化,绚丽多姿,引起世人关注。回族以汉语为共同语,但在宗教生活和社会交往中,他们又夹杂着大量只有穆斯林内部交流的词汇或短语。凡是回族居住地,总是集中在一定堡子、寨子或山村;在一定的地段和街道。房屋一般向南,回族不崇拜偶像,穆斯林家屋内墙上特别是礼拜堂内不贴人像。

  • 南京科技职业学院简介(南京科技职业学院 科技学院)

    毕业生就业率保持在98%以上,就业质量稳步提高,获江苏省高校毕业生就创业工作考核优秀单位。建成江苏省大学生创业示范基地、南京市大学生创业园等学生创业平台,设立创业种子基金、校友创新创业奖学金,形成具有高职特色和行业特色的创新创业体系。

  • 什么人不能戴南红(不能戴南红的人群简述)

    什么人不能戴南红?接下来我们就一起去了解一下吧!什么人不能戴南红经常在厨房工作的人是不适宜佩戴南红的,因为厨房的高温环境和油烟会对南红的品质造成影响;而经常做户外活动或体力活动的人也不适合戴南红,因为活动时产生过多的汗液会渗入南红,也会大大降低南红品质。

  • 申然是什么电视剧(申然人物介绍)

    申然是什么电视剧张申然——是香港爱情/剧情系列电影《单身男女》中的第一男主角(男一号)。由香港演技实力派影帝古天乐先生饰演。电影《单身男女》主要讲述了释放办公室内外恋情感应,划出时势爱情最窝心贴身的人与事。

  • 白癜风发病会遗传吗(白癜风发病原因遗传因素占首位)

    同时,在白癜风患者的血清中有许多人可以检测出器官的特异性抗体。

  • 草莓奶茶的做法和配方(怎样做草莓奶茶)

    草莓奶茶的做法和配方草莓50克,牛奶200克,红茶叶5克,糖1匙。用少许的水,放入红茶叶、草莓块,小火煮沸。红茶与草莓煮2分钟左右加入牛奶与糖,煮沸。关火,盖上盖子,让草莓牛奶等材料捂3分钟左右。取一个杯子,把草莓、茶叶用筛子过滤出来,牛奶有点颗粒是正常的,因牛奶遇带酸的水果会凝结的。取一个草莓,去蒂后切薄片,把草莓片泡在草莓奶茶里,用以增加香味。热乎乎的草莓奶茶,真的好简单,配些蛋糕、饼干就OK。

  • 关于冬天感慨的句子(感受一下冬天的句子)

    光秃秃树木,像一个个秃顶老头儿,受不住西北风袭击,在寒风中摇曳。

  • 发动机转速如何控制(如何利用发动机控制车速)

    4、在下长坡、崎岖山路等陡峭路面时,必须利用发动机制动,结合间歇制动来控制车速。