001/* 002 * Copyright 2002-2014 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * https://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package org.springframework.context.annotation; 018 019/** 020 * Common interface for annotation config application contexts, 021 * defining {@link #register} and {@link #scan} methods. 022 * 023 * @author Juergen Hoeller 024 * @since 4.1 025 */ 026public interface AnnotationConfigRegistry { 027 028 /** 029 * Register one or more annotated classes to be processed. 030 * <p>Calls to {@code register} are idempotent; adding the same 031 * annotated class more than once has no additional effect. 032 * @param annotatedClasses one or more annotated classes, 033 * e.g. {@link Configuration @Configuration} classes 034 */ 035 void register(Class<?>... annotatedClasses); 036 037 /** 038 * Perform a scan within the specified base packages. 039 * @param basePackages the packages to check for annotated classes 040 */ 041 void scan(String... basePackages); 042 043}