Spring 引导 - 接口和实现
Spring Boot - interfaces and implementations
Java/Spring 这里是新手。我有一个关于通过 SpringBoot.
自动布线的问题
我有一个接口、一个实现、一个主要 class 和一个配置 class,如下所示:
ServiceInterface.java
public interface ServiceInterface {
static String serviceName = "service";
public void displayMessage();
public String getServiceName();
}
ServiceImpl1.java
public class ServiceImpl1 implements ServiceInterface{
static String serviceName = "default service value ";
public String getServiceName() {
return serviceName;
}
@Override
public void displayMessage()
{
System.out.println("This is implementation 1");
}
}
主要 class :
@SpringBootApplication
public class App implements CommandLineRunner{
@Autowired
private ServiceInterface serviceInterface;
public static void main(String args[])
{
SpringApplication.run(App.class, args);
}
@Override
public void run(String... args) {
serviceInterface.displayMessage();
System.out.println(serviceInterface.getServiceName());
System.out.println(serviceInterface.serviceName );
}
}
AppConfig.java
@Configuration
public class AppConfig {
@Bean
ServiceInterface serviceInterface()
{
return new ServiceImpl1();
}
}
当我 运行 代码时,我得到这个作为输出
This is implementation 1
service 1
default service value
为什么无法通过 Spring 通过自动装配创建的对象访问 ServiceImpl1 实现中的变量 'serviceName'?
没关系..我只是想通了 variables declared inside an interface are static and final.
Java/Spring 这里是新手。我有一个关于通过 SpringBoot.
自动布线的问题我有一个接口、一个实现、一个主要 class 和一个配置 class,如下所示:
ServiceInterface.java
public interface ServiceInterface {
static String serviceName = "service";
public void displayMessage();
public String getServiceName();
}
ServiceImpl1.java
public class ServiceImpl1 implements ServiceInterface{
static String serviceName = "default service value ";
public String getServiceName() {
return serviceName;
}
@Override
public void displayMessage()
{
System.out.println("This is implementation 1");
}
}
主要 class :
@SpringBootApplication
public class App implements CommandLineRunner{
@Autowired
private ServiceInterface serviceInterface;
public static void main(String args[])
{
SpringApplication.run(App.class, args);
}
@Override
public void run(String... args) {
serviceInterface.displayMessage();
System.out.println(serviceInterface.getServiceName());
System.out.println(serviceInterface.serviceName );
}
}
AppConfig.java
@Configuration
public class AppConfig {
@Bean
ServiceInterface serviceInterface()
{
return new ServiceImpl1();
}
}
当我 运行 代码时,我得到这个作为输出
This is implementation 1
service 1
default service value
为什么无法通过 Spring 通过自动装配创建的对象访问 ServiceImpl1 实现中的变量 'serviceName'?
没关系..我只是想通了 variables declared inside an interface are static and final.