gpt4 book ai didi

java - 如何将我的类包含到 Spring 上下文中?

转载 作者:行者123 更新时间:2023-12-01 10:51:04 24 4
gpt4 key购买 nike

我们正在运行 Spring 设置,但我没有看到任何 XML 配置文件,似乎一切都是通过注释完成的。

我在特定的包中有一些自定义组件类,我需要将其添加到 spring 上下文中以进行 Autowiring ,并且我用 @Component 注释了该类,但这没有什么区别。我是否缺少另一个注释?

我有一个循环,我需要进行组件扫描以发现包中的所有类,也许我可以将它们添加到那里,因为我已经对它们有了 BeanDefinition 句柄。如果是这样,我该怎么办?

for (BeanDefinition bd : scanner.findCandidateComponents("com.blah.target")) {
// how to add it to context here?
}

最佳答案

如果您没有看到任何 XML 配置文件,则该项目应该有一个 springconfig 包,其中包含一个名为 WebConfig.java 的 java 文件。这与 XML 配置文件完全相同。

下面是典型 Webconfig.java 的片段

package .....springconfig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
<...>


@Configuration
@EnableWebMvc
@ComponentScan(basePackages="<your source package>")
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
String dir="/resources/";
registry.addResourceHandler("/images/**").addResourceLocations(dir + "images/");
...
}

@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/view/");
resolver.setSuffix(".jsp");
return resolver;
}

@Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setMaxUploadSize(100);
return resolver;
}

}

查看本教程:Simple Spring MVC Web Application这里解释得非常好。

关于java - 如何将我的类包含到 Spring 上下文中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33901775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com