@Component
public class ConnectionService {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("{spring.liquibase.change-log}")
private String changelog;
public ConnectionService() {
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getChangelog() {
return changelog;
}
public void setChangelog(String changelog) {
this.changelog = changelog;
}
}
@SpringBootApplication
public class MigrationsApplication {
private static final Logger logger = LoggerFactory.getLogger(MigrationsApplication.class);
@Autowired
static
ConnectionService cs;
public static void main(String[] args) throws DatabaseException {
try{
cs=new ConnectionService();
String dbUrl=cs.getUrl();
logger.info("URL:"+dbUrl);
String dbUsername=cs.getUsername();
logger.info("USERNAME:"+dbUsername);
String dbPassword=cs.getPassword();
logger.info("PASSWORD:"+dbPassword);
String changelogPath=cs.getChangelog();
}
我做错了什么?我需要组件的完整构造函数吗?这是因为cs是静态的?springboot不是要自动填充这些值吗?
component
表示这是一个bean,因此Spring将处理它的生命周期。当bean被创建时,它将用请求的数据填充它。但是,您尝试用它填充静态值,这不是生命周期的一部分。在类中添加一个完整的arg构造函数,并让Spring将其注入到您想要使用它的地方,它就会很好地工作。
编辑:
我刚刚意识到您没有使用静态变量,所以当您适当地让Spring初始化bean时,字段注入应该可以工作
@SpringBootApplication
public class MigrationsApplication.class implements CommandLineRunner {
private static final Logger logger = LoggerFactory.getLogger(MigrationsApplication.class);
@Autowired
ConnectionService cs;
public static void main(String[] args) {
SpringApplication.run(MigrationsApplication.class, args);
}
@Override
public void run(String... args) {
String dbUrl=cs.getUrl();
logger.info("URL:"+dbUrl);
String dbUsername=cs.getUsername();
logger.info("USERNAME:"+dbUsername);
String dbPassword=cs.getPassword();
logger.info("PASSWORD:"+dbPassword);
String changelogPath=cs.getChangelog();
}
}
在get方法中尝试在springboot中按id查找行时,收到一个空值。我在这里对数据库的调用是否有误? 存储库- 服务- 控制器-
我想在下面返回JSON。 {“名字”:“杰基”} 新来的春靴在这里。1天大。有没有合适的方法可以做到这一点?
问题内容: 通常,当使用嘲笑我会做类似 是否可以按照以下方式做点什么? 因此,而不是仅使用参数来确定结果时。它使用参数内的属性值来确定结果。 因此,在执行代码时,其行为如下 当前的解决方案,希望可以提出更好的建议。 问题答案: 这是一种方法。这使用一个对象来检查属性的值。 我实际上更喜欢另一种语法,它可以实现完全相同的效果。由您选择其中之一。这只是方法-测试类的其余部分应与上述相同。
本文向大家介绍JS返回iframe中frameBorder属性值的方法,包括了JS返回iframe中frameBorder属性值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS返回iframe中frameBorder属性值的方法。分享给大家供大家参考。具体分析如下: frameborder 属性规定是否显示框架周围的边框。 希望本文所述对大家的javascript程序设计有所帮助
我正在为我们的IT团队编写一个中央控制台,用于显示从Spring Boot Actuator endpoint/configprops检索到的属性,这些属性适用于我们SOA生态系统中运行的每个微服务。我有两个问题 似乎@Value注释的属性没有得到返回,尽管留档说 63.7发现外部属性的内置选项。。。。最终列表来自搜索源代码中的@ConfigurationProperties和@Value注释,以
使用Angular ,我正在创建一个属性组件并向其中注入一个值。为此,我在这里跟随答案。 我想知道有没有一种方法,就像在AngularJS中一样,直接在组件中输入一个值,而不需要定义单独的< code>[form]=""。例如:<代码> 导致“。 我正在尝试将我的表单(通过变量)注入组件,但我不想进行其他绑定,例如根据这里的帖子,这应该是可能的,但我无法工作。自从更高的Angular版本以来,这种