1. 程式人生 > >今日收獲-context:component-scan

今日收獲-context:component-scan

desire alc detect con repos pre app component vid

一、要有命名空間 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