如何在没有@SpringBootApplication 的情况下仅使用XML 文件在Spring Boot Java 中创建REST 端点?
How to create a REST endpoint in Spring Boot Java without @SpringBootApplication, using only XML file?
我正在尝试在两个非 Web 应用程序之间实现 REST 端点,所有配置都在 XML 文件中。
我创建了一个简单的控制器,其方法只有 returns "OK"
,因此我可以 运行 使用 Postman 进行一些测试。
不幸的是,没有创建端点。
我做了一些研究,发现我需要添加“context”标签,组件扫描指向控制器包才能正常工作。
但是我目前的实现还不足以让它工作:
<context:component-scan base-package="com.app.REST"/>
我的控制器class是:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test(){
return "OK";
}
}
我的问题是:有没有什么方法可以创建一个 REST 端点而不用 @SpringBootApplication
注释主 class?如果是,我错过了什么?它是在我的 XML 文件中还是在其他地方?
要启用 MVC 功能,您需要指示 spring 扫描您的控制器
这是通过 <mvc:annotation-driven />
标签完成的。
此外,由于 DispatcherServlet 正在处理您的请求,因此您需要在 web.xml
中为其添加正确的配置
....
<servlet>
<servlet-name>my-dispatcher-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:web-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher-servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
LE:
<mvc:annotation-driven>
类似于 <context:component-scan>
他们注册了所有注解了@Controller, @Component, @Service, @Repository and @Bean...
的bean
与 mvc:annotation-driven
的主要区别在于它还创建了一些额外的 bean,这些 bean 负责在 dispatcherServlet 中进行端点注册(HandlerMapping、HandlerAdapters 和一些默认的 conversionServices 需要代表您的控制器接收到的数据例如)
我正在尝试在两个非 Web 应用程序之间实现 REST 端点,所有配置都在 XML 文件中。
我创建了一个简单的控制器,其方法只有 returns "OK"
,因此我可以 运行 使用 Postman 进行一些测试。
不幸的是,没有创建端点。
我做了一些研究,发现我需要添加“context”标签,组件扫描指向控制器包才能正常工作。
但是我目前的实现还不足以让它工作:
<context:component-scan base-package="com.app.REST"/>
我的控制器class是:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test(){
return "OK";
}
}
我的问题是:有没有什么方法可以创建一个 REST 端点而不用 @SpringBootApplication
注释主 class?如果是,我错过了什么?它是在我的 XML 文件中还是在其他地方?
要启用 MVC 功能,您需要指示 spring 扫描您的控制器
这是通过 <mvc:annotation-driven />
标签完成的。
此外,由于 DispatcherServlet 正在处理您的请求,因此您需要在 web.xml
中为其添加正确的配置....
<servlet>
<servlet-name>my-dispatcher-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:web-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher-servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
LE:
<mvc:annotation-driven>
类似于 <context:component-scan>
他们注册了所有注解了@Controller, @Component, @Service, @Repository and @Bean...
与 mvc:annotation-driven
的主要区别在于它还创建了一些额外的 bean,这些 bean 负责在 dispatcherServlet 中进行端点注册(HandlerMapping、HandlerAdapters 和一些默认的 conversionServices 需要代表您的控制器接收到的数据例如)