Spring常用注解

2020-02-19 10:35
1500
0
@Configuration:等同于spring以xml方式配置的配置文件。
@Bean:注册bean
 
@Controller:控制器注入
@Service:服务层注入
@Repository:dao层注入
@Component:通用注入
 
@ComponentScan("com.cyx.demo"):扫包,参数如下
      basePackages与value:  用于指定包的路径,进行扫描
      basePackageClasses: 用于指定某个类的包的路径进行扫描
      nameGenerator: bean的名称的生成器
      useDefaultFilters: 是否开启对@Component,@Repository,@Service,@Controller的类进行检测
      includeFilters: 包含的过滤条件
            FilterType.ANNOTATION:按照注解过滤
            FilterType.ASSIGNABLE_TYPE:按照给定的类型
            FilterType.ASPECTJ:使用ASPECTJ表达式
            FilterType.REGEX:正则
            FilterType.CUSTOM:自定义规则
      excludeFilters: 排除的过滤条件,用法和includeFilters一样
示例:@ComponentScan(value = "com.cyx.demo",includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Service.class)} ,useDefaultFilters = false)
 
@Scope:Bean对象以什么方式创建,注解在Bean的类上面。
有如下几种式创建:
      singleton:单例模式,全局有且仅有一个实例。
      prototype:原型模式,每次获取Bean的时候都会有一个新的实例。
      request:表示针对每次请求都会产生一个新的Bean对象,并且该Bean对象仅在当前Http请求内有效。
      session:每个会话会产生一个新的Bean对象,并且该Bean仅在当前Http session内有效。
 
@Lazy:是否以懒加载形式创建bean对象(默认为true)。True为懒汉式,调用时创建;false表示饿汉式,在IOC容器加载的时候被创建。
Bean对象是在什么时候创建的?两种情况,一是在调用的时候创建。另一个是在配置文件加载bean的时候创建。Spirng默认是在配置文件加载bean的时候创建(没用@Lazy注解时)。
 
@Condition:实现选择性的注入Bean操作(是在spring4.0 增加的条件注解)。值为class,此类需要实现Condition接口,复写matches方法,返回true表示注入false表示不注入。
 
@Import:将外部的类注入到springIOC容器中,值为注入类的class,多个用逗号分隔。功能与@Bean类似,但是注册的beanId为当前类的全路径。
@import注解和@Bean注解的区别:@bean注解是以方法名称作为beanId,@import注解以当前类的完整路径作为beanId,相比来说@Import注入类更加简单。
@import注解和@Bean注解的共同点:主要都是用来引用外部类。
 
@DependsOn:表示被注解的bean在初始化时,指定的bean需要先完成初始化。值为指定dean的beanid。

全部评论