我有三个班。我正在尝试在项目中连接@PropertySource,但application.properties 文件中的数据未激活,spring 没有将其拾取。请告诉我我的错误是什么?
主要的
package reversbot;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import reversbot.services.VkBot;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext (InjectionContext.class);
VkBot vkBot = context.getBean(VkBot.class);
vkBot.hello();
}
}
注入上下文
package reversbot;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.EnableScheduling;
import reversbot.services.VkBot;
@Configuration
@EnableScheduling
@PropertySource(value = "classpath:resources/application.properties", ignoreResourceNotFound = true)
public class InjectionContext {
@Bean
public VkBot vkBot() {
return new VkBot();
}
}
机器人
package reversbot.services;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Service
public class VkBot {
@Value("$(ide)")
String ide;
@Value("$(token)")
String token;
@Scheduled(fixedDelay = 5000)
@PostConstruct
public void hello(){
System.out.println ("Hello BOSS!!!!");
System.out.println("ide = " + ide);
System.out.println("token = " + token);
System.out.println(" ");
}
}
ide = login
token = 12345678
1.注入属性值
@Value("$(ide)")
,而是@Value("${ide}")
@Value("$(token)")
,一个@Value("${token}")
您需要使用花括号,而不是括号
2. 带有属性的文件路径
该文件夹
resources
已在 中classpath
,因此您不应指定classpath:resources/application.properties
它。执行此操作时,您实际上是在尝试引用以下文件:
src/main / resources/resources / application.properties
Spring 找不到的。
resources
因此,应删除该文件夹的额外提及。全部的
注入上下文
机器人
@PropertySource("application.properties") 这个就够了,但是第一次连接property文件的时候,编辑器可能不接或者不马上接,不过那是另一个问题,检查是否有真实访问