3

私は次のような設定ファイルを持っています

package com.mypackage.referencedata.config;

@Configuration
@ComponentScan ("com.mypackage.referencedata.*")
public class ReferenceDataConfig {

私が持っている場合は春のxmlで

<context:component-scan base-package="com.mypackage.referencedata.config.*" />

ロードされません。

使用する場合

<context:component-scan base-package="com.mypackage.referencedata.*" />

できます。

何が得られますか?1日もうまくいくと思います。

4

3 に答える 3

4
<context:component-scan base-package="com.mypackage.referencedata.config.*" />

パッケージのまま内部のパッケージをスキャンしますcom.mypackage.referencedata.config

com.mypackage.referencedata.config

うまくいきます。

于 2012-06-08T07:59:43.770 に答える
2

SpringFramework のコンポーネントスキャンで @Configuration クラスをスキャンする必要はありません。ただし、web.xml ファイルのように必要な構成を定義する Web アプリケーションの Application Initializer クラスに登録する必要があります。そこに WebApplicationInitializer インターフェイスを実装し、onStartup メソッドを定義する必要があります。

その onStartup メソッドで、 @Configuration クラスを Web アプリケーションの rootContext に登録する必要があります。次のコード スニペットを見てください。

1. web.xml として機能するクラス

public class ApplicationInitializer implements WebApplicationInitializer {

    //Called first when the application starts loading.
    public void onStartup(ServletContext servletContext)
            throws ServletException {
        System.out.println("Inside application initializer...");

        //Registering the class that incorporates the annotated DispatcherServlet configuration of spring
        AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
        rootContext.register(DispatcherConfig.class);

        //Adding the listener for the rootContext
        servletContext.addListener(new ContextLoaderListener(rootContext));

        //Registering the dispatcher servlet mappings.
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(rootContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }

}

2. Web アプリケーションの @Configuration クラスは、Bean およびその他のセットアップを保持します。

@EnableWebMvc
@Configuration
@ComponentScan(basePackages={"com.abcprocure.servicerepo.controller", "com.abcprocure.servicerepo.model", "com.abcprocure.servicerepo.service"})
public class DispatcherConfig extends WebMvcConfigurerAdapter {

    //Registers the url paths for resources to skip from spring. Eg. JS, CSS and images.
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // TODO Auto-generated method stub
        registry.addResourceHandler("/js/**").addResourceLocations("/js/**");
        registry.addResourceHandler("/html/**").addResourceLocations("/html/**");
    }

    //Defines the ViewResolver that Spring will use to render the views.
    @Bean
    public ViewResolver viewResolver() {
        System.out.println("Inside View Resolver...");
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }

    //Defines the DataSource to use in the application.
    @Bean
    public DataSource dataSource() {
        System.out.println("Inside DataSource bean creation....");
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        dataSource.setUrl("jdbc:sqlserver://192.168.100.131;databaseName=test");
        dataSource.setUsername("egptender");
        dataSource.setPassword("egp#123");
        return dataSource;
    }

    //Defines the Hibernate's SessionFactory.
    @Bean
    public SessionFactory sessionFactory() {
        LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource()).addAnnotatedClasses(Services.class, Operations.class, OperationParameters.class, ServiceModels.class, Businesslogic.class,TblFormMaster.class,TblFormBuilder.class);
        builder.setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
        builder.setProperty("hibernate.show_sql", "true");
        return builder.buildSessionFactory();
    }
}

これがお役に立てば幸いです。乾杯。

于 2012-06-08T08:32:05.643 に答える
-1

Mavenを使用している場合は、正しい依存関係があるかどうかを確認してください

于 2019-10-02T08:09:00.587 に答える