- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个配置了 spring-security-core 的 Grails 2.4.4 应用程序。我想使用 faker plugin 在 BootStrap 中生成假用户.但是,当我在 BootStrap 中实例化 bean fakerService 并尝试使用它时,即。 fakerService.firstname()
,我得到一个错误:
ERROR context.GrailsContextLoaderListener - Error initializing the application: Cannot invoke method firstName() on null object
Message: Cannot invoke method firstName() on null object
最佳答案
是的,你是 :)
一点背景。当您在没有显式范围修饰符(例如 public、private、protected)的 Groovy 类中添加类范围变量(字段)时,它默认为 public,就像类和方法一样。但它被认为是 JavaBean 意义上的属性,因此 Groovy 编译器会根据名称为您创建一个 getter 和一个 setter。因此,如果您声明 def foo
和 String bar
(你是否指定类型都没有关系)你会得到Object getFoo()
, void setFoo(Object)
, String getBar()
, 和 void setBar(String)
方法(您应该使用反编译器对 POGO 类进行反编译并自己查看 - 这是非常酷的东西 - 我推荐 JD-GUI ,但使用任何你喜欢的东西)。如果您已经声明了其中任何一个,Groovy 会跳过那个并且不会覆盖您的。这很酷,因为您可以将变量视为简单的公共(public)字段,但可以随时添加 getter 和/或 setter 逻辑,而不影响调用客户端(Groovy 或 Java,因为 Java 类一直在调用 getter 和 setter ,并且当您读取或写入属性时,Groovy 会为您调用 getter 和 setter)。
那我为什么要喋喋不休呢?依赖注入(inject)由 Spring 完成 - 您正在注入(inject) Spring bean。有多种方法可以做到这一点,但 Grails 中的默认设置是使用 autoinject-by-name。因此,对于在 ApplicationContext
中注册的任何 bean和特殊类(class),如 BootStrap
, 集成测试等,Spring 会扫描寻找 setter 的方法。它去掉“set”并将下一个字母小写,这就是 setter 的“属性”名称。如果 ApplicationContext
中有一个具有该名称的 bean , Spring 将调用该 setter,传递具有该名称的 bean,如果类型同步,您的类将具有对该 bean 的引用。
您添加了一个局部变量。局部变量没有什么特别的事情发生,Spring 看不到它们,它们也不是依赖注入(inject)的候选者。将声明移动到类范围,在 init
之前关闭,例如
class BootStrap {
def fakerService
def init = {
...
}
}
getFakerService
不太感兴趣的方法,但也是
setFakerService
Spring 将看到的方法。它将确定其属性名称为“fakerService”,查看是否存在具有该名称的 bean,并调用 setter。这一切都发生在 Grails 调用
init
之前。关闭,因此此时该值将是非空
FakerService
热切地等待您的来电。
关于spring - Faker for Grails 给出变量未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28007701/
我们正在尝试启动一个新的 Rails 项目,出于测试目的,我们打算使用 faker。 faster faker (ffaker) 是 faker 的超集,我应该使用哪一个? 最佳答案 ffaker R
我想生成两个固定值之间的一些日期,但我不知道如何 使用faker.date. Between来实现这一点。 faker js demo中的示例只是给出一个 null 值。 最佳答案 不确定他们什么时候
这个问题在这里已经有了答案: Importing installed package from script with the same name raises "AttributeError: m
我想扩展 faker gem for rails 以生成其他随机日期(在我的例子中是电脑游戏名称) #lib/extended_faker.rb require 'faker' require 'ex
我在 Lubuntu 20.04 和 Maria-db 15.1、php 8.0.8 上运行 pimcore 10 和 coreshop 3。 (运行 coreshop 只能通过使用composer
我正在使用 github.com/dmgk/faker去打包生成假名。但是,每当我尝试导入包时,都会收到此错误消息: can't load package: package github.com/dm
我最近开始使用 Faker,因为它能够将数据本地化到各个区域。在尝试生成本地化电话号码时,我意识到电话号码有多种格式,如 here 所示。 .我想知道是否所有生成的电话号码都可以像这样格式化:(+91
我正在尝试在 Laravel 工厂中生成唯一的日期序列。例如: 2019-05-04 2019-05-05 2019-05-06 ... 2019-07-04 我试过这个,每个日期出现 0 - n 次
我想要最小长度为 1,最大长度为 3。 我试过 $faker->username(1,3); 它仍在生成长度更长的用户名。 另外我怎样才能让它只有字母?有时它的用户名中有句点。 define(App\
所以我正在用 Laravel 创建一个数据库并为其播种,但我遇到了一个问题,它生成了一个电话号码,如下所示:(635) 889-5802 x45134 .这会因超出数据库列的所需长度而导致问题。 所以
嗨,我正在使用 Faker 库生成随机数据来填充我正在处理的项目的表,正如您所看到的,我正在准备语句,然后在数组中设置该语句的所有变量。最后我正在执行该声明,但注意到为什么它让我非常困惑。 prepa
我有一个小程序加载到 JFrame 中,我可以向它发送鼠标信息,如下所示: MouseEvent m; m = new MouseEvent(owner.loader.applet.getCo
所以我有一个像这样的对象: class ContactPhoneFactory(factory.Factory): class Meta: model = ContactPho
如何从 Rails 中的 Faker gem 生成特定长度的单词数组?例如,我想制作一个包含五个单词的数组,其中每个单词的长度也是五个。 最佳答案 如果您想要任何 5 个可以混合数字和字母的字符,除了
我正在尝试设置新的 @faker-js/faker图书馆。到目前为止,我这样做了: npm i @faker-js/faker -D 在顶层添加了 faker.d.ts。所以树是这样的: faker.
我看到 repo 完全空白,并显示一条消息 What really happened with Aaron Swartz? 我想知道继续使用它是否仍然安全,或者我们应该切换到另一种选择。这是 repo
在 heroku rake db:migrate 之后,我收到以下错误: rake aborted! no such file to load -- faker /app/Rakefile:7 (Se
我有一个 Laravel 应用程序,要求注册用户必须使用他们的公司电子邮件(自定义域)。 那么我如何使用伪造生成器来实现这一点,以使用我的模型工厂对其进行测试? 最佳答案 您可以在 php 的 pre
我在我的 Laravel 5.5 项目中使用 Faker 来伪造一些数据。我遇到了这个问题,我需要将 faker 中的另外两个列设置为与生成的“实时”列相同的值。这就是我的意思: $factory->
import factory.fuzzy import faker from core.strings import underscore_15 from factory import DjangoM
我是一名优秀的程序员,十分优秀!