今日收獲-context:component-scan
一、要有命名空間 xmlns:context="http://www.springframework.org/schema/context"
二、作用:直接上解釋吧!
Scans the classpath for annotated components that will be auto-registered as Spring beans. By default,
the Spring-provided @Component, @Repository, @Service, @Controller, @RestController,
@ControllerAdvice, and @Configuration stereotypes will be detected. Note: This tag implies the effects
of the ‘annotation-config‘ tag, activating @Required, @Autowired, @PostConstruct, @PreDestroy,
@Resource, @PersistenceContext and @PersistenceUnit annotations in the component classes, which is
usually desired for autodetected components (without external configuration). Turn off the ‘annotation-
config‘ attribute to deactivate this default behavior, for example in order to use custom
BeanPostProcessor definitions for handling those annotations. Note: You may use placeholders in
package paths, but only resolved against system properties (analogous to resource paths). A
component scan results in new bean definitions being registered; Spring‘s
PropertySourcesPlaceholderConfigurer will apply to those bean definitions just like to regular bean
definitions, but it won‘t apply to the component scan settings themselves. See javadoc for
org.springframework.context.annotation.ComponentScan for information on code-based alternatives to
bootstrapping component-scanning.
Content Model : (include-filter*, exclude-filter*)
三、實例
<!-- 配置自動掃描的包 -->
<context:component-scan
base-package="com.it.aop"></context:component-scan>
@Component("arithmeticCalculator")
public class ArithmeticCalculatorImpl
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ArithmeticCalculator arithmeticCalculator = (ArithmeticCalculator) ctx.getBean("arithmeticCalculator");
-- 釋放資源
((ConfigurableApplicationContext)ctx).close();
int result = arithmeticCalculator.add(1, 2);System.out.println("result:" + result);
今日收獲-context:component-scan