Spring springmvcコンテナ管理controllerの疑惑

3308 ワード

soaのプロジェクトでは,web層のプロジェクトはspringを必要とせず,いくつかの資料に基づいてまとめる.
SpringとSpringMVC親子コンテナ:1つのプロジェクトでは、コンテナが1つだけではなく、Springに複数のコンテナを含めることができ、コンテナには上下関係があります.Springは親コンテナ、SpringMVCは子コンテナ、Spring親コンテナに登録されているBeanはSpringMVCコンテナに表示され、SpringMVCコンテナに登録されているBeanはSpring親コンテナには表示されません.
注記構成はBeanを一括登録するために使用されます:@Controller,@Service,@Respositoryの3つの注記、SpringMVCは以下の構成に関連しています.検証されたところ、これはSpringMVCが構成しなければならないもので、@Componentから継承されているためです.
SpringMVC    ,    @RequestMapping、@RequestBody、@ResponseBody 。  ,                ,  json      。         





SpringとSpringMVCの2つのコンテナで、それらのプロファイルはそれぞれapplicationContext.xmlとspringmvc.xml
1.アプリケーションContext.xmlでは、登録が必要なすべてのBeanのスキャンと登録を担当するように構成されています.
2.springmvc.xmlで構成され、SpringMVC関連注釈の使用を担当します.
プロジェクトを開始するとSpringMVCがジャンプできないことがわかります.SpringMVCコンテナのリクエストは特定のcontrollerにマッピングされていません.Springは@Controller注釈付きのBeanをSpringという親コンテナに登録しているので、springMVCはプロセッサが見つかりません.ジャンプできません.
異なるタイプのBeanを異なるコンテナに割り当てることで管理できることをお勧めします.

        contextConfigLocation
        classpath:spring/applicationContext.xml



        spring   
        org.springframework.web.context.ContextLoaderListener
    

    
    
        spring mvc servlet
        springMvc
        org.springframework.web.servlet.DispatcherServlet
        
              spring mvc       (        、     )
            contextConfigLocation
            classpath:spring/springmvc.xml
        
        
        1
    
    
        springMvc
        
        /rest/*
        
    

 
ContextLoaderListener Listener Listenerは、Springフレームワーク自体をマウントするbeanコンテキスト(サービスやDAOレイヤなど)であり、DispatcherServiceletはSpringMVCをマウントするコンテキストである.
applicationContext.xml:
springmvc.xml:
Springコンテナ(コンテキスト)の作成が完了すると、springMVCコンテナを初期化すると、前に初期化したSpringコンテナが親コンテナに設定されます.プロジェクトにSpring親コンテナが初期化されていない場合、springMVCはデフォルトの親コンテナを初期化します.
注意:上記の構成ではspringMVCサブコンテナがスキャンするパッケージはcontrollerパッケージに限定されますが、SpringコンテナとspringMVCコンテナがスキャンするパッケージをすべて構成すると、サブコンテナと親コンテナにすべてのカスタムbeansが作成されます.サブクラスコンテナにServiceとDAOがロードされると、制御層はサブクラスコンテナにロードされたbeanを使用して実行します.しかし、このサービスにはトランザクションなどの機能はありません(Springフレームワークの構成はありません)、普通のbeanなので、使用すると予知できない問題があります.