我做了一个简单的maven项目,这是我的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>HelloWorld</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>HelloWorld</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>1.5.9.RELEASE</version>
</dependency>
</dependencies>
</project>
这是一个单一的文件项目,所以这是代码:
package com.example;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main (String[] args) {
System.out.println("Hello World!");
}
}
我运行mvn package
然后
java -cp target/HelloWorld-1.0-SNAPSHOT.jar com.example.App
一切正常,我看到&#34; Hello World!&#34;在我的控制台中。
所以我的问题是:如果我没有在类路径中指定包含此类的jar,那么Java如何知道org.springframework.boot.autoconfigure.SpringBootApplication
在哪里?
答案 0 :(得分:2)
它没有。它是一个注释,Java可以运行包含类路径中不可用的注释的类(按设计)。
这允许在客户端和服务器之间共享类,例如,由于服务器需要注释而注释,但在客户端无用的。