Java学習ノート(29):spring

6050 ワード

スプリング配置
1.階層的なJava SE/EEフレーム
2.カーネル:ioc、aop
iocの具体的な実現:注入依存
aopの具体的な実現:
3.技術:持久層Spring JDBCTemplate、業務層事務管理、展示層Spring MVC
4.プロセス:springフレームでxmlファイルを読み、反射によってbeanオブジェクトを作成し、対象に戻ります.
5.の属性:
id ---唯一
クラス ---クラス全体の名前
scope ---範囲:singleton単一例(xmlファイルを読み込む時にbeanを作成する)、prototype多例(getBen時に作成する)
init-method ---初期化方法の指定
destory-method ---廃棄方法の指定
------デフォルト無参構造方法はbeanを初期化し、工場方式はbeanを初期化する時、工場種類をカスタマイズして、getDao方法を書く必要があります.
  factory-method ---静的工場方式初期化bean(クラスカスタムの工場類)
  factory-bean ---ダイナミック工場方式初期化bean(factory-bean=「工場種類のbeanid」 factory-method=「getDao」)
6.依存注入:control層はserviceのみを使用し、serviceはdaoにも依存する.だから更にspring容器内部でdaoをserviceに注入します.
帯参構造方法:serviceで定義されている、daoのプライベート変数、帯参(dao)の構造方法
                           xml:
set方法:serviceで定義:daoのプライベート変数、daoのset方法
                 xml:
追加:propertyは属性p:userDao-ref="xxx"に変更できます.p名前空間を導入する必要があります.
7.set注入他のタイプ:
普通のタイプ:
引用タイプ:propertyのワードタグ:
                     値(引用:参照のid値)…
                      .......
                      value値は…
参照の割当値:対応するbeanを配置する際に、propertyで良い値を賦与する.
8.主構成ファイルに他の構成ファイルを導入する:
9.API
インターフェース:Application Comptext
実現類:Class PathXml… クラスのルートディレクトリからプロファイルを読み込みます.
                FileSystemXml…… 設定ファイルをディスクから読み込みます.
                AnnotationConfig… 注解を読み、容器オブジェクトを注解で配置する
方法:ゲトビーン
getBeanのパラメータ:Stringタイプ:id名
                              クラスタイプ:クラスのバイトコード(このタイプは容器の中に一つのbeanしかありません)
10.データソースの設定
propertiesプロファイルに接続情報を設定する
.xmlプロファイルで接続情報を読み出し、データソース(例えば DruidDataSource)Spring容器注入
使用:DataSource dataSource=ap.getBen(DataSource.class);
//  :  properties         
ResourceBundle rb = ResourceBundle.getBundle("jdbc"); //     
String str=rb.getString("key  ")
//xml    

    

    
        
        
        
        
        
        
        
    
//  
DataSource dataSource = app.getBean(DataSource.class);
springコメント
1.xmlにスキャンを構成する必要があります.
2.元の注釈:beanの代わりに
@Component---類に容器を入れます.(3つの意味化コメントに対応します.@Controller、@Service、@Repository)
@Scope---クラス、作用範囲
@PostConstruct---方法上、初期化方法、@PreDestory---メソッド、廃棄方法
@Value---変数には、通常の変数が注入されます(「変数値/$keyの値」)
@Autowired---変数には、注入タイプに応じて参照されます.
@Qualfier---変数には、名前によって注入(Autowiredと一緒に使用)され、set方法は省略されます.
@Resource---変数上の引用注入は、Autowired+Qualfierに等しいです.
3.新規コメント
@Configration---クラス、総配置類
@ComponentScan---クラスでスキャンを構築する(「包」)
@PropertySource---クラスで.propertiesファイルをロードします.(「classipath:jdbc.properties」)
@Import---クラスで、配置類を導入します.
@Bean---方法的には、方法戻り値は、spring容器に格納されています.(「指定名称」)、例えば、dataSourceに戻ります.
4.Junnitを整合する
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
//@ContextConfiguration(classes={SpringConfiguration.class})
public class SpringTest {

    @Autowired
    private UserService userService;

    @Test
    public void test01(){
        userService.out();
    }
}
スプリングのaop
1.aop:面に向かってプログラミングする;プリコンパイル方式と実行期間動的エージェントによるプログラム機能の統一保守を実現する技術です.
              oop(オブジェクト指向プログラミング)の続きです.
             aopは一種の思想で、springフレームワークはaop思想を実現し、aspectjフレームもaop思想を実現し、性能がより良いです.
2.下の実装:動的エージェント技術(自動実装)
JDK代理:インターフェースベース
cglibエージェント:ベースクラス
spring傍受切削点の実行は、接点が実行される---プロキシ機構を使用して、動的にターゲットとプロキシオブジェクトを作成する---通知カテゴリに従って、プロキシオブジェクトの対応する位置に、対応する機能を通知して織り込む
3.名詞の一部:
ターゲット、エージェント、接続ポイント(強化可能な方法)、切り込みポイント(切削点;本当に強化される方法)
通知/強化(追加コード)、カット(ターゲット方法+追加コード;カットポイント+通知)
織り込む(切断面と強化を結合する過程)
4.xml方式:
    
    
         
            
            
            
            
        
    
beforeフロント、after-returning後置、around 前(接点方法)後(方法戻り値)、throwing異常、after最後(異常の有無にかかわらず)
aroundパラメータ:Proceding JoinPoint接点は、接点方法を呼び出すことができます.
5.注釈方式:
AOP自動代理を追加します.
@Asppectうどん類
@Before、@AfterReturning、… (「接点式」)または(「クラス.方法()」)
@PointCut(「接点式」) 一つの空の方法で使うと、表現抽出です.
 
Spring JDBCTemplate
1.new JdbcTemplate()->xml
  set Data Source(ds)--set注入
 
コントロール
1.声明式事務制御:xml、注解
              下の階はaopです
              接面と見なす:接点--業務方法、通知--事務制御(事務のオープン、提出、ロールバック)
    
    
        
    
    
    
        
        
            
            
        
    
    
    
        
        
    
2.コメント:@Transactional クラス--あらゆる方法に対して、方法は--優先です.
    xml書き込み駆動