spring 具有不同上下文的多模块项目
spring multi module project with different context
大家好。
我在多模块项目中遇到问题。我的项目有 3 个 jar 模块和 1 个 web 模块。
ABZ
ABZ-service
ABZ-dao
ABZ-webapp
在这个 'ABZ' 中是我的父模块,'ABZ-webapp' 是我的网络模块。所有请求都通过 spring 容器处理。
但是现在我想为 Web 服务添加新模块 spring REST Web 服务。我想在其中安装 REst 控制器。
ABZ-webservice
我的问题是,我应该怎么做才能使我的上下文扫描 'ABZ-webservice' 模块的包装结构。仅供参考..ABZ-webservice .
web.xml
<servlet>
<servlet-name>ABZ</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ABZ</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
spring-context.xml
<context:component-scan base-package="com.ABZ.rest.controller" />
<context:component-scan base-package="com.ABZ.web.controller" />
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
<!-- Template cache is set to false (default is true). -->
<property name="cacheable" value="false" />
<property name="characterEncoding" value="UTF-8" />
</bean>
ABZ-webapp 模块中的 NormalController
package com.ABZ.web.controller;
@controller
@RequestMappig (--)
public class NormalController{
@RequestMappig (--)
public String test()
{
}
}
ABZ-webservice 模块中的 RestController
package com.ABZ.rest.controller;
@controller
@RequestMappig (--)
public class RestController{
@RequestMappig (--)
public String test()
{
}
}
上下文路径:localhost:8080/ABZ-webapp/
可以访问 NormalController 但不能访问 RestController
现在从这个控制器路径我想点击我的 'ABZ-webservice' 模块
中的 URL
您已经在 spring-context.xml 定义了组件扫描,它们没问题
<context:component-scan base-package="com.ABZ.rest.controller" />
<context:component-scan base-package="com.ABZ.web.controller" />
现在将您的 类 定义为
ABZ-webapp 模块中的 NormalController
package com.ABZ.web.controller;
@controller
@RequestMappig (value="/web")
public class NormalController{
@RequestMappig (value="/test")
public String test()
{
}
}
ABZ-webservice 模块中的 RestController
package com.ABZ.rest.controller;
@controller
@RequestMappig (value="/rest")
public class RestController{
@RequestMappig (value="/test")
public String test()
{
}
}
并让你的测试像
和
如果您有任何问题,我可以编辑我的答案。
大家好。 我在多模块项目中遇到问题。我的项目有 3 个 jar 模块和 1 个 web 模块。
ABZ
ABZ-service
ABZ-dao
ABZ-webapp
在这个 'ABZ' 中是我的父模块,'ABZ-webapp' 是我的网络模块。所有请求都通过 spring 容器处理。 但是现在我想为 Web 服务添加新模块 spring REST Web 服务。我想在其中安装 REst 控制器。
ABZ-webservice
我的问题是,我应该怎么做才能使我的上下文扫描 'ABZ-webservice' 模块的包装结构。仅供参考..ABZ-webservice .
web.xml
<servlet>
<servlet-name>ABZ</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ABZ</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
spring-context.xml
<context:component-scan base-package="com.ABZ.rest.controller" />
<context:component-scan base-package="com.ABZ.web.controller" />
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
<!-- Template cache is set to false (default is true). -->
<property name="cacheable" value="false" />
<property name="characterEncoding" value="UTF-8" />
</bean>
ABZ-webapp 模块中的 NormalController
package com.ABZ.web.controller;
@controller
@RequestMappig (--)
public class NormalController{
@RequestMappig (--)
public String test()
{
}
}
ABZ-webservice 模块中的 RestController
package com.ABZ.rest.controller;
@controller
@RequestMappig (--)
public class RestController{
@RequestMappig (--)
public String test()
{
}
}
上下文路径:localhost:8080/ABZ-webapp/
可以访问 NormalController 但不能访问 RestController 现在从这个控制器路径我想点击我的 'ABZ-webservice' 模块
中的 URL您已经在 spring-context.xml 定义了组件扫描,它们没问题
<context:component-scan base-package="com.ABZ.rest.controller" />
<context:component-scan base-package="com.ABZ.web.controller" />
现在将您的 类 定义为
ABZ-webapp 模块中的 NormalController
package com.ABZ.web.controller;
@controller
@RequestMappig (value="/web")
public class NormalController{
@RequestMappig (value="/test")
public String test()
{
}
}
ABZ-webservice 模块中的 RestController
package com.ABZ.rest.controller;
@controller
@RequestMappig (value="/rest")
public class RestController{
@RequestMappig (value="/test")
public String test()
{
}
}
并让你的测试像
和
如果您有任何问题,我可以编辑我的答案。