2016-07-31 63 views
1

我想用SpringBoot創建一個新項目,@Controller註解似乎可行,但Eclipse抱怨說它不是一個註釋。任何想法來解決這個問題?@Controller不是註釋

的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>gpID</groupId> 
    <artifactId>myApp</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>My App</name> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.0.RELEASE</version> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
      <optional>true</optional> 
     </dependency> 

     <dependency> 
      <groupId>com.google.apis</groupId> 
      <artifactId>google-api-services-youtube</artifactId> 
      <version>v3-rev177-1.22.0</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

Controller.java

package myApp.controllers; 

import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller // This line is not understood in Eclipse 
@EnableAutoConfiguration 
public class Controller { 

    @RequestMapping("/") 
    public String index() { 
     return "index"; 
    } 

} 
+2

看起來你會需要重命名你的類水木清華等,比'Controller' – injecteer

+2

沒有想出來,你有沒有嘗試重新命名你的班級?也許日食會讓你感到困惑,你使用你的類的名字作爲註釋?或者在你的註釋中@@ org.springframework .... Controller# –

回答

3

你的代碼是混亂的,但讓精確:

  1. 最終, 「定製」 註解java類。所以,就像其他類一樣 - 當你想在你的源代碼中使用它們時,那​​麼你需要爲這個類定義一個import語句。所以,就你的情況而言:爲你打算使用的控制器註釋指定「完整」名稱,確保它的類文件位於你的構建路徑中,然後添加import語句。像:import org.springframework.stereotype.Controller;
  2. 當你打算在用戶另一個註釋稱爲X,也不要叫你的類「X」

1點應該解決您的「編譯」的問題;如果你不想讓自己和其他未來的代碼讀者混淆,那麼第二點就非常重要。是的,Java允許擁有x.Y和z.Y類名;但如果可能的話:避免它!您會發現,當您在一個類中使用兩個不同含義的名稱Y時,例如,您必須始終使用絕對名稱,如x.Y和z.Y。

+0

嘗試Spring-Controller類的完整路徑當我重構了我的類的名稱時,它還更改了註釋的名稱,這明確證明它很混亂他們倆。感謝你的回答 ! – L01c

+0

很高興幫助...如果是這樣,請不要忘記接受答案。 – GhostCat

-1
<dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.0.0.RELEASE</version> 
</dependency> 

也許這?

0

您需要使用完全合格的名稱註記,因爲你的類被命名爲Controller

@org.springframework.stereotype.Controller 
public class Controller {... 
相關問題