@Component :标注一个普通的Spring Bean类
@Controller :标注一个控制器组件器
@Service :标注一个业务逻辑组件器
@Repository :标注一个DAO组件类
在默认的情况之下,spring会自动的搜索所有上面的标注的java类,并把它们当成Spring Bean处理
spring3.0
@DependsOn :用于强制初始化其他bean @DependsOn({"chinese","usa"})
@Lazy :用于指定该bean是否取消预初始化 例如:@lazy(true)
spring 4.0
@Autowired :指定自动装配 ,当标注setter方法时,默认采用byType自动装配政策
通过<component-scan .../>(<component-scan base-package="..."/>)元素添加<include-filter ../>或<exclude-filter .../> 子元素来指定Spring Bean类(指定路径java类满足这种规则,即使没有Annotation标注,spring也会把他们当作Bean类来处理)
<include-filter ../>元素用于指定满足该规则的java类会被当成Bean类来处理
<exclude-filter .../> 元素指定满足规则的java类不会被当做Bean类来处理
使用这两种元素时都要求指定如下的两个属性:
type:指定过滤器类型
expression:指定过滤器所需要的表达式
spring内建支持如下的四种过滤器
annotation: annotation过滤器,需要指定一个Annotation名,如:lin.AnnotationTest
assignable: 类名过滤器,直接指定一个java类
regex:正则表达式过滤器,匹配表达式的java类满足该过滤规则,如:com.example.Default.*
aspectj:AspectJ过滤器,如:com.example..*Service+