@Controller不是注释

时间:2016-07-31 13:47:28

标签: java spring-boot

我正在尝试使用SpringBoot创建一个新项目,@ Controller注释似乎有效,但Eclipse抱怨说它不是注释。有什么想法来解决这个问题吗?

的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";
    }

}

3 个答案:

答案 0 :(得分:3)

您的代码令人困惑,但请准确一点:

  1. 最后,“自定义”注释是 java类。因此,与任何其他类一样 - 当您想在源代码中使用它们时,那​​么您需要为该类创建一个import语句。因此,在您的情况下:计算您打算使用的控制器注释的“完整”名称,确保其类文件位于构建路径中,然后添加import语句。与:string url = string.Format("<img src='{0}' id='' alt='' />", Url.Content(string.Format("~/File/Profile/{0}", firstOrDefault.Avatar)));
  2. 一样
  3. 当您打算使用名为X的另一个注释时,请不要将您的班级称为“X”
  4. 第1点应该修复你的“编译”问题;如果您不想让自己和代码的其他未来读者感到困惑,那么第2点就非常重要。是的,java允许使用x.Y和z.Y类名;但如果可能的话:避免它!您会看到,当您在一个类中使用两个不同含义的名称Y时,例如,您必须始终使用绝对名称,如x.Y和z.Y。

答案 1 :(得分:0)

您需要使用注释的完全限定名称,因为您的类名为Controller

@org.springframework.stereotype.Controller
public class Controller {...

答案 2 :(得分:-1)

validates :image_url, allow_blank: true, format: {with: %r{\.(gif|jpg|png)\z}i, message: 'URL must point to GIF, JPG, PNG.'}

也许这个?