Spring注釈と発展過程を理解する.


1.Spring注釈を知る
Springは現在最も人気のあるJavaフレームであり、その上に発展したSpringBoot、SpringCloudもたくさんの人が使っています.注釈を使う方式に慣れて開発しましたので、Spring注釈駆動の発展過程も分かります.
2.Spring注釈の発展過程
2.1 Spring 1.x注釈駆動啓蒙段階
この時Java 5がリリースされたばかりで、Annotationスタイルが流行しています.Spring 1.2は@Transactionと@ManagedResourceを提供していますが、この時Beanを搭載するのはXMLで構成されています.
 <bean name="DemoSerivce" 
class="com.tiger.example.spring.v1.DemoService01"/>
2.2 Spring 2.x注解駆動発展の重要な段階
  • Spring 2.0は@Required、@Repository、@Asppectなどの
  • を発展しました.
  • Spring 2.5は非常に重要な注釈を提供しています.Autowired@Qualifierおよび@Component@Service@Controllerなどの注釈は、現在開発中に使用されている注釈です.この時SpringはXML化されていません.XMLに
  • を配置する必要があります.
    <context:component-scan 
    base-package="com.tiger.example.spring.v2">context:component-scan>
    
    2.3 Spring 3.x注解駆動のマイルストーン
  • Spring 3.0に@Configrationの注釈が提供されています.この場合、完全なXML化プロファイル
  • が完了します.
    @Configuration
    public class SpringConfiguration {
    
        @Bean
        public DemoService03 getDeDemoService03(){
            return new DemoService03();
        }
    }
    
  • @ComponentScan(basePackage=")スキャンのパス
  • を設定します.
  • @Importは他の構成類を導入して搭載する
  • @Configuration
    @Import(ImportConfiguration.class) //  ImportConfiguration       
    public class SpringConfiguration {
    
        @Bean
        public DemoService03 getDeDemoService03(){
            return new DemoService03();
        }
    }
    
    @Configuration
    public class ImportConfiguration {
    
        @Bean
        public ImportService getImportService(){
            return new ImportService();
        }
    }
    
  • @EnbaleXXXモジュール化可能な搭載eg:クイックオープンタイミングタスク
  • @Configuration
    @EnableScheduling
    public class ScheduleConfiguration {
    
        @Bean
        public ScheduleService getScheduleService(){
            return new ScheduleService();
        }
    }
    
    2.4 Spring 4.x注釈の改善段階
    Spring 4 xは@Condtional注釈を提供しています.カスタム条件でビーンの初期化を完了することができます.
    @Configuration
    public class SpringConfiguration {
    
        //       TigerCondition  true   ,      
        @Conditional(TigerCondition.class)
        @Bean
        public DemoService getDemoService(){
            return new DemoService();
        }
    }
    
    public class TigerCondition implements Condition {
        
        public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
            // TODO               
            //  false  bean    
            //return false;
            //  true  bean   
            return true;
        }
    }
    
    2.5 Spring 5 x注釈の最適化段階
    @IndexedはComponentScanスキャンの性能の詳細を上げるためにここSpring 5–@Indexed注を参照してください.
    3.豆知識
    3.1 Springはどのように循環依存を解決しますか?
    クラスAとクラスBがサイクル依存なら
  • 原則Spring初期化Beanの順序は、最初に現在のBeanを初期化し、初期化依存Bean
  • である.
  • AでBに依存しています.まず初期化します.AにBがあることが分かりました.この時Aは半製品状態
  • です.
  • 初期化Bには、Aが半完成品のAオブジェクトをBに設定し、初期化が完了した
  • がある.
  • その後、Aは初期化を完了する
  • .
    4.まとめ
    Spring 2.x注解駆動の発展の重要な時期に、多くの実用的な注釈を提供して、更に後に完全にXML配置に行って、性能を昇格させて、Springに更に人気があります!コード位置:tiger-spring-demo