Sping註解開發

ckxllf發表於2019-08-30

  基本註解

  @Configuration

  作用: 標記在類上表示是一個配置類(相當於一個配置類)

  @Bean

  作用: 在容器中放一個bean相當於xml檔案裡的bean標籤

  @Configuration

  public class DemoConfig {

  @Bean

  public Person person(){

  Person person = new Person();

  person.setPerson("china");

  return person;

  }

  }

  @scope

  作用: 指定作用域

  

scope

  分為單例,多例等

  @ComponentScan()

  作用: 包掃描

  @Configuration

  @ComponentScan("com.zyh.pratice")

  public class DemoConfig {

  @Bean

  public Person person(){

  Person person = new Person();

  person.setPerson("china");

  return person;

  }

  }

  指定報下的註解都可以被掃描到

  過濾

  excludeFilters:不包含

  用法

  @Configuration

  @ComponentScan(value = "com.zyh.pratice", excludeFilters ={

  @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,value = IncludeBean.class),

  })

  public class DemoConfig {

  includeFilters:包含

  用法

  @Configuration

  @ComponentScan(value = "com.zyh.pratice", includeFilters ={

  @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,value = IncludeBean.class),

  },useDefaultFilters = false)

  注意 用includeFilters 時要將useDefaultFilters 設為false

  FilterType

  有這幾種型別可選

  

在這裡插入圖片描述

  @Conditional  無錫婦科醫院

  作用:條件註解,傳入一個Condition的實現類,條件滿足時才去載入bean

  @Conditional(ConditionDemo.class)

  public Bill bill(){

  return new Bill();

  }

  Condition

  作用位置

  被bean註釋的方法上:滿足條件時註冊該bean

  類上:滿足條件時註冊該類

  import

  作用:匯入指定的類

  @Configuration

  @ComponentScan

  @Import(ImportDemo.class)

  public class DemoConfig2 {

  }

  這樣 ImportDemo就會被註冊到容器中

  ImportSelector

  實現ImportSelector介面後,可以返回多個類,註冊到容器中

  

ImportSelector

  ImportBeanDefinitionRegistrar

  public class BeanDefinitionDemo implements ImportBeanDefinitionRegistrar {

  public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {

  BeanDefinition beanDefinition = new RootBeanDefinition(BeanDemo.class);

  beanDefinitionRegistry.registerBeanDefinition("beanDemo",beanDefinition);


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2655526/,如需轉載,請註明出處,否則將追究法律責任。

相關文章