Я новичок в Spring Framework и относительно новичок в Java. Пока я копаю проекты Spring MVC и Spring Boot, я сталкиваюсь с тем, чего не понимаю:
Итак, в проекте, в пакете src / main / resources / myProject.config , есть файл UserInfo.properties.xml , который выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="name"></entry>
<entry key="gender"></entry>
</properties>
А в пакете src / main / java / myProject.config имеется интерфейс Java с таким же именем UserInfo.java , который выглядит ниже:
public interface UserInfo {
String getName();
String getGender();
}
И в каком-то другом Java-классе программа может напрямую использовать:
public class A {
UserInfo userInfo;
public A(UserInfo userInfo) {
this.userInfo = userInfo;
}
public void someMethod() {
userInfo.getName();
userInfo.getGender();
}
}
Итак, мои вопросы:
- Отображается ли файл UserInfo.properties.xml на UserInfo.java ? Если да, что именно происходит за сценой?
- Почему интерфейс может использоваться напрямую без реализации?
Я искал в Интернете, но не смог найти ответ. Я думаю, что, возможно, я не ищу правильное ключевое слово. Буду очень признателен, если кто-нибудь подскажет мне об этом. Спасибо!