用了@EnableWebMvc之后@Import失效
时间: 2023-05-25 11:05:13 浏览: 479
@EnableWebMvc注解默认开启了Spring MVC的基本配置,包括HandlerMapping、HandlerAdapter等,默认会覆盖掉原有的配置。因此,使用@EnableWebMvc注解后,@Import注解失效的原因是因为@EnableWebMvc中的配置与你手动添加的配置冲突,导致手动添加的配置被覆盖掉了。
要解决这个问题,有两种方法:
1. 不使用@EnableWebMvc注解,手动配置Spring MVC的组件。
2. 如果一定要使用@EnableWebMvc注解,可以在@EnableWebMvc注解上加上exclude属性,将原有配置指定为排除项。
示例:
@Configuration
@EnableWebMvc(exclude = {WebMvcAutoConfiguration.class})
public class MyWebMvcConfig {
// 手动配置Spring MVC组件
...
}
这样就可以保留手动添加的配置了。
相关问题
package net.educoder.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration //@EnableWebMvc public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { /******************begin****************/ /******************end******************/ } } 补充代码,配置 html 目录文件在 /html/ 路径 下
可以在 addResourceHandlers 方法中添加以下代码来配置 html 目录文件在 /html/ 路径下:
```
registry.addResourceHandler("/html/**")
.addResourceLocations("classpath:/html/");
```
其中,`addResourceHandler` 指定了 URL 请求路径的规则,`addResourceLocations` 指定了对应的文件路径。在本例中,`/html/**` 表示所有以 `/html/` 开头的请求都会被映射到 `classpath:/html/` 目录下寻找对应的文件。
import Vue from 'vue' import App from './App.vue' import Cart from "@/components/Cart" import Home from "@/components/Home" import Login from "@/components/Login" import Order from "@/components/Order" import Product from "@/components/Product" Vue.config.productionTip = false new Vue({ Cart,Home,Login,Order,Product, render: h => h(App), }).$mount('#app')帮我检查一下代码
这段代码看起来没有明显的语法错误,但是你在实例化 Vue 的时候,将多个组件传递给了 Vue 对象。这不是一个正确的做法,因为你需要将每个组件都注册到 Vue 实例中,而不是将它们传递给 Vue 对象。你可以尝试使用 Vue.component() 方法来注册每个组件,或者在组件内部使用 import 和 export 来注册组件。例如,在 Cart 组件内部,你可以这样导出组件:
```
export default {
// 组件的选项
}
```
然后在 main.js 中导入和注册组件:
```
import Vue from 'vue'
import App from './App.vue'
import Cart from "@/components/Cart"
import Home from "@/components/Home"
import Login from "@/components/Login"
import Order from "@/components/Order"
import Product from "@/components/Product"
Vue.config.productionTip = false
Vue.component('cart', Cart)
Vue.component('home', Home)
Vue.component('login', Login)
Vue.component('order', Order)
Vue.component('product', Product)
new Vue({
render: h => h(App),
}).$mount('#app')
```
阅读全文