未MapSpring REST控制器

kognpnkq  于 2023-03-16  发布在  Spring
关注(0)|答案(3)|浏览(119)

我正在尝试创建一个侦听“/login”的à Rest控制器,我已经定义了下面的代码,但当我打开http://localhost:8080/login时,我得到一个404错误...请帮助:)
以下是我的包结构:

com.my.package
   |_ Application.java
   |_ controller
          |_ LoginController

我的申请:

@ComponentScan("com.my.package.controller")
@SpringBootApplication
public class Application {
    public static void main(String[] args){
        SpringApplication.run(Application.class, args);
    }
}

我的休息控制器:

@RestController
public class LoginController {

    @RequestMapping("/login")
    public @ResponseBody String getLogin(){
        return "{}";
    }
}
r55awzrz

r55awzrz1#

控制器类应该位于Application类的文件夹中或更低的文件夹中。
因此,如果应用程序类在包com.company.app中,则控制器类应该在包com.company.appcom.company.app.*.中。假设控制器类在com.company.controller中,则由于它不在应用程序类的同一个包或子包中,因此不会Map。

aemubtdh

aemubtdh2#

您应该在springBoot应用程序的init类中使用此注解

@Configuration
@EnableAutoConfiguration
@ComponentScan("com.my.package")
public class WebAppInitializer{

    public static void main(String[] args) throws Exception{
        SpringApplication.run(WebAppInitializer.class, args);
    }

}

dw1jzc5e

dw1jzc5e3#

有时候,当Map不起作用的原因没有意义时,只需更改服务器端口,使其与8080不同。
例如,在application.properties或yml中,服务器端口=8081

相关问题