Spring mvc Spring组件扫描:我们可以使用@componentscan和<;上下文:组件扫描基本包=";com.web.*"/&燃气轮机;在同一个项目中?
我已经在DispatcherServlet中配置了组件扫描 代码:Spring mvc Spring组件扫描:我们可以使用@componentscan和<;上下文:组件扫描基本包=";com.web.*"/&燃气轮机;在同一个项目中?,spring-mvc,Spring Mvc,我已经在DispatcherServlet中配置了组件扫描 代码: <context:component-scan base-package="com.web.rest" annotation-config="true" scoped-proxy="targetClass" /> <annotation-driven /> @Configuration @ComponentScan(basePackages = {"com.web.utils"}) @C
<context:component-scan base-package="com.web.rest"
annotation-config="true" scoped-proxy="targetClass" />
<annotation-driven />
@Configuration
@ComponentScan(basePackages = {"com.web.utils"})
@Component
public class FileUtil {
}
但是@ComponentScan(basePackages={“com.web.utils”})对我不起作用,它没有扫描“com.web.utils”包
我们可以在同一个项目中使用注释驱动和xml配置组件扫描吗???您可以将注释驱动的配置文件和基于xml的配置文件组合在一起。如果您使用的是Java@Configuration文件,那么只需添加@ImportResource注释即可同时加载XML配置文件。以下注释将名为
Spring servlet.XML
的Spring XML配置文件加载到基于注释的Spring ApplicationContext对象中:
@Configuration
@ImportResource("classpath:spring-servlet.xml")
class JConfig { }
确保spring-servlet.xml位于应用程序类路径中。有关更多详细信息,请参阅
然后修改web.xml中的dispatcher servlet配置,如下所示:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>org.rest.spring.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context:component-scan base-package="com.web.utils"
annotation-config="true" scoped-proxy="targetClass" />
春天
org.springframework.web.servlet.DispatcherServlet
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
org.rest.spring.rest
1.
春天
/
您只需在此处更改或添加两个
init param
标记,其余标记将与以前相同。将contextConfigLocation
的param值作为基于注释的配置java文件所在的包。并从该基于注释的配置文件导入基于xml的配置文件,如上所示。提到如果有任何问题,请告诉我。您可以将注释驱动的配置文件和基于xml的配置文件组合在一起。如果您使用的是Java@Configuration文件,那么只需添加@ImportResource注释即可同时加载XML配置文件。以下注释将名为Spring servlet.XML
的Spring XML配置文件加载到基于注释的Spring ApplicationContext对象中:
@Configuration
@ImportResource("classpath:spring-servlet.xml")
class JConfig { }
确保spring-servlet.xml位于应用程序类路径中。有关更多详细信息,请参阅
然后修改web.xml中的dispatcher servlet配置,如下所示:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>org.rest.spring.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context:component-scan base-package="com.web.utils"
annotation-config="true" scoped-proxy="targetClass" />
春天
org.springframework.web.servlet.DispatcherServlet
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
org.rest.spring.rest
1.
春天
/
您只需在此处更改或添加两个
init param
标记,其余标记将与以前相同。将contextConfigLocation
的param值作为基于注释的配置java文件所在的包。并从该基于注释的配置文件导入基于xml的配置文件,如上所示。提到如果有任何问题,请告诉我。您可以在同一项目中使用注释驱动和XML配置组件扫描。但是如果您同时使用这两种方法,那么XML配置将覆盖注释驱动的配置,就像它在这里用于组件扫描一样。因此,我们应该避免混合,如果不可避免,我们应该减少混合。否则,结果有时是不可预测的。下面是Java文档的摘录(参见第3点)
下面是注释和部署描述符的组合
支持:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>org.rest.spring.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context:component-scan base-package="com.web.utils"
annotation-config="true" scoped-proxy="targetClass" />
您可以在同一项目中使用注释驱动和XML配置组件扫描。但是如果您同时使用这两种方法,那么XML配置将覆盖注释驱动的配置,就像它在这里用于组件扫描一样。因此,我们应该避免混合,如果不可避免,我们应该减少混合。否则,结果有时是不可预测的。下面是Java文档的摘录(参见第3点) 下面是注释和部署描述符的组合 支持: