如果一个bean类来自外部库(例如我自己的commons库),我如何使用ConfigurationProperties填充该bean?
示例:来自公共库:
package com.my.commons.person;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
@Validated
public class CommonPerson {
private @NotNull String name;
private @NotNull String age;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getAge() { return age; }
public void setAge(String age) { this.age = age; }
}
实施项目:
package com.my.api;
@SpringBootApplication
public class MainApp extends SpringBootServletInitializer {
@Bean
@ConfigurationProperties("commons.person")
public CommonPerson person() {
return new CommonPerson();
}
}
application.properties(也仅限于实施项目):
commons.person.name=Dummy
commons.person.age=30
结果:
由于验证异常,应用程序启动失败。o、 s.b.b.PropertiesConfigurationFactory:对象公用空间中的字段错误。字段“name”上的“person”:拒绝的值[null]。。。
顺便说一句:如果我将普通人直接移动到实现项目中,代码就会按预期工作。这只是不工作,如果类来自外部。。。
根据文档,这应该可以工作:@ConfigurationProperties在第三方类上
我正在用maven加载我的commons包:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>com.my.commons</groupId>
<artifactId>person-commons</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
尝试使用...@EnableConfigurationProperties
注释启用配置属性支持,它可能会有所帮助。
一些例子和用法解释:1和2
正如@davidxxx和其他人所指出的,代码本身是正确的。
在我的例子中,问题可能是IDE的一些缓存问题。我只是取出了pom.xml
中的公共库,保存并阅读它。这不知何故触发了IDE内部的清理,而mvn净安装
没有(因为我之前多次运行这些maven目标)。
问题内容: 我的问题是该网页未加载到webview中。 启动网络浏览器… 这是我的活动代码: 我在清单中添加了所需的权限: 问题答案: 由于这篇文章,我终于找到了解决方案。这是代码:
问题内容: (此问题与我所见过的许多问题相似,但大多数问题对我的工作不够具体) 背景: 我的程序的目的是使使用我的程序的人可以轻松制作自定义的“插件”,然后将其编译并加载到程序中使用(与在我的程序中实现的不完整,缓慢的解析器相比)。我的程序允许用户将代码输入到预定义的类中,以扩展与我的程序一起打包的已编译类。他们将代码输入到文本窗格中,然后我的程序将代码复制到要重写的方法中。然后,将其保存为(几乎
问题内容: (此问题与我所见过的许多问题相似,但大多数问题对我的工作不够具体) 背景: 我的程序的目的是使使用我的程序的人可以轻松制作自定义的“插件”,然后将其编译并加载到程序中使用(与在我的程序中实现的不完整,缓慢的解析器相比)。我的程序允许用户将代码输入到预定义的类中,从而扩展了与我的程序一起打包的已编译类。他们将代码输入到文本窗格中,然后我的程序将代码复制到被覆盖的方法中。然后,将其保存为(
我将Jetty(8和9)与LZ4压缩一起使用,我想使用LZ4的本机实现,它是C库的本机绑定。为了实现这一点,LZ4类应该用系统类加载器加载。 所以我的问题是,如何用Jetty中的系统类加载器加载一个外部jar。 将lib放入$jetty。home/lib/ext没有帮助,因为它是用扩展类加载器而不是系统加载器加载的。
问题内容: 我有这个模块,它将外部库与其他逻辑一起组成组件,而无需将标签直接添加到index.html中: 我注意到ES6规范是静态的,并且在TypeScript编译期间而不是在运行时进行了解析。 无论如何使其可配置,以便从CDN或本地文件夹加载file.js?如何告诉Angular 2动态加载脚本? 问题答案: 如果使用的是system.js,则可以在运行时使用: 如果您使用的是webpack,
本文向大家介绍JS加载器如何动态加载外部js文件,包括了JS加载器如何动态加载外部js文件的使用技巧和注意事项,需要的朋友参考一下 今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js JsLoader.js测试 测试结果如下: