package com.itheima.reggie.config; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; @Slf4j @Configuration public class WebMvcConfig extends WebMvcConfigurationSupport { /** * 设置静态资源映射 * @param registry */ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("开始进行静态资源映射..."); registry.addResourceHandler("/backend/").addResourceLocations("classpath:/backend/"); registry.addResourceHandler("/front/").addResourceLocations("classpath:/front/"); } }
时间: 2023-02-16 17:09:43 浏览: 162
这是一段用于在Spring项目中配置静态资源映射的代码。它继承了WebMvcConfigurationSupport类并重写了addResourceHandlers()方法,在方法中使用ResourceHandlerRegistry类的addResourceHandler()和addResourceLocations()方法将"/backend/"和"/front/"映射到classpath下的"/backend/"和"/front/"文件夹。这样可以使访问这两个路径的请求都能访问到对应的静态资源。
相关问题
package com.itheima.service.impl; import com.itheima.damain.HeadTeacher; import com.itheima.service.Service2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component @Qualifier("serviceImpl") public class ServiceImpl implements Service2 { @Value("${data.name}") private String name; @Autowired private HeadTeacher headTeacher; @Override public void method() { System.out.println(name); System.out.println(headTeacher.getTeacherName()); } }
你的`ServiceImpl`类是一个组件(Component)并且实现了`Service2`接口。在类中,你使用了`@Qualifier("serviceImpl")`注解来指定该bean的限定符,以便在注入时能够明确地引用它。
此外,在类中你还使用了`@Value("${data.name}")`注解来注入配置文件中的属性值,属性名为`data.name`,注入到了`name`字段中。
另外,你还使用了`@Autowired`注解来自动注入`HeadTeacher`类型的bean,Spring将会根据类型进行匹配。
在`method()`方法中,你打印了`name`和`headTeacher.getTeacherName()`的值。
这样配置后,当Spring容器启动时,它会自动扫描并创建`ServiceImpl`的实例,并将其作为`Service2`类型的bean进行管理。其他组件可以通过使用`@Qualifier("serviceImpl")`来引用该bean,并且可以通过自动注入获取到相关的属性和依赖。
希望对你有所帮助!如果还有其他问题,请随时提问。
Exception in thread "main" org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.itheima.service.impl.ServiceImpl' available: expected single matching bean but found 2: serviceImpl,service2 at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1299) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:484) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:332) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1174) at com.itheima.App.main(App.java:10)
这个错误表示在应用程序上下文中找到了多个匹配的bean,但无法确定要注入哪一个bean。根据你提供的错误信息,提示存在两个匹配的bean:`serviceImpl`和`service2`。同样的解决方法适用于这种情况。
你可以尝试使用`@Qualifier`注解来明确指定要注入的bean。例如:
```java
@Autowired
@Qualifier("serviceImpl")
private ServiceImpl service;
```
或者
```java
@Autowired
@Qualifier("service2")
private ServiceImpl service;
```
这样可以明确地告诉Spring要注入哪个具体的bean。
如果仍然存在问题,请确保在应用程序上下文中只有一个符合条件的bean定义。如果有多个相同类型的bean定义,你需要检查你的配置文件或包扫描路径,确保只有一个符合条件的bean。
希望这些信息能帮助你解决问题!如果还有其他问题,请随时提问。
阅读全文