有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我们正在运行一个Spring设置,在这里我看不到任何XML配置文件,似乎所有的事情都是通过注释完成的

我在一个特定的包中有一些自定义的组件类,我需要添加到spring上下文中进行自动连接,我用@component注释了这个类,但这并没有什么区别。我是否缺少另一个注释

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

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

共 (1) 个答案

  1. # 1 楼答案

    如果没有看到任何XML配置文件,那么项目应该有一个springconfig包,其中包含一个名为WebConfig的java文件。JAVA这完全等同于XML配置文件

    下面是一个典型网络配置的片段。爪哇

    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这里有很好的解释