IntelliJ Spring Gradle项目注释不起作用



因此,我正试图使用项目配置设置中的Spring选项在IntelliJ中启动一个新的web项目,但当我最终获得项目设置时,我制作的任何新控制器似乎都会被忽略,即使我对它们进行了注释。@RequestMapping似乎从未映射过。我所能访问的只是位于web目录根目录中的文件。

在无法实现这一点后,我改用Gradle,这样我就可以导入一些额外的库来测试我的项目。我的渐变文件如下所示:

构建脚本{存储库{mavenCentral()}依赖项{classpath("org.springframework.boot:spring-boot gradle插件:1.2.2.RELEASE")}}应用插件:'java'应用插件:'eclipse'应用插件:'idea'应用插件:"spring-boot"sourceSet{主要{java{srcDirs=['src/main/java']}}试验{java{srcDirs=['src/main/test']}}}罐子{baseName='gs休息服务'版本="0.1.0"}存储库{mavenCentral()}源兼容性=1.7targetCompatibility=1.7依赖项{compile("org.springframework.boot:spring-boot starter web")testCompile("junit:junit")testCompile"org.mockito:mmockito核心:1.+"}任务包装器(类型:包装器){gradleVersion='2.3'}

我是否必须填写某种配置文件来告诉项目在哪里寻找控制器,或者精灵灰尘是否没有像我预期的那样工作?

我的控制器是这样的:

@RestController公共类GreetingController{public static final字符串问候语="你好,%s!";private最终AtomicLong计数器=新AtomicLong();@RequestMapping("/问候语")公共问候语(@RequestParam(value="name",defaultValue="World")字符串名称){返回新的问候语(counter.incrementAndGet(),String.format(问候语,名称));}}

以及用@SpringBootApplication:注释的类

@SpringBootApplication公共类应用程序{public static void main(String[]args){SpringApplication.run(Application.class,args);}}

我的文件夹结构:

测验-.gradle-.想法-构建-渐变-out-src-主要-java-控制器-应用程序.java-GreetingController.java-试验-腹板-WEB-INF-(空)

在这一点上,我真的很困惑Spring是如何工作的,因为注释还没有发挥作用。我是否缺少配置文件?Spring入门教程说我不需要,但可能是因为我使用的是IntelliJ。

最后需要注意的一点是,我正在使用本地Tomcat实例运行。

谢谢大家!

如果在Tomcat中部署应用程序,则必须创建一个扩展SpringBootServletInitializer的类来启动Spring容器。只有当您使用带有嵌入式Tomcat(默认情况下包含在Spring Boot Starter Web中)的java-JAR yourfile.JAR运行JAR/WAR时,才会调用带有main方法的Application类。

请参阅文档:http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-创建可部署的war-file

最新更新