spring可以自动检测类并注册bean到ApplicationContext中
默认情况下,类被自动发现并注册bean的条件是:使用@Component、@Repository、@Service、@Controller或者使用@Component的自定义注解
可通过过滤器修改上面的行为
还可使用use-default-filters="false"禁用自动发现与注册
@Component是一个通用注解,可用于任何bean
@Repository 通常用于DAO类,即持久层
@Service通常用于注解Service类,即服务层
@Controller通常用于Controller类,即控制层
为了能够检测这些类并注册响应的Bean,需要<context:component-scan
base-package="org.example"/>
<context:component-scan>包含<context:annotation-config>
通常在使用前者后,不在使用后者
AutowiredAnnotationBeanPostProcessore和CommonAnnotationBeanPostProcessor也会被包含起来
package com.imooc.beanannotation
import org.springframework.context.annotation.Scope
import org.springframework.stereotype.Component
//@Component("bean")
@Scope 默认为singlet
@Component 如果不指定bean的id,则id为beanAnnotation(当前类名称首字母小写)
public class BeanAnnotation {
}