国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring 裝配

Leo_chen / 3150人閱讀

摘要:有以下三種配置在中配置在中配置自動裝配自動裝配這里以轉載為例子首先需要建立概念即,定義一個接口只需要實現添加兩個注解,定義接口規定方法為啟用組件掃描標題內容規定方法為掃描的時候,會直接按照該類所在的包,作為基礎包,進行掃描對依賴的實現自動裝

有以下三種配置
在xml中配置
在java中配置
bean自動裝配

自動裝配

這里以轉載CD為例子

首先需要建立CD概念

即,定義一個cd接口

只需要實現添加兩個注解,

package com.ming;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * 定義cd接口
 * @author ming
 */
@Configuration
@ComponentScan
public interface CompactDisc {
    /**
     * 規定方法為play
     */
    void play();
}
package com.ming;

import org.springframework.stereotype.Component;

/**
 *
 * @author ming
 */

// 啟用組件掃描
@Component
class SgtPeppers implements CompactDisc {
    private String title = "標題";
    private String artist = "內容";
    /**
     * 規定方法為play
     */
    @Override
    public void play() {
        System.out.println(this.artist + this.title);
    }
}
package com.ming;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import static org.junit.Assert.*;

public class CompactDiscTest {
    private ApplicationContext applicationContext = null;

    @Before
    public void setUp() throws Exception {
        applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    public void play() {
        CompactDisc compactDisc = applicationContext.getBean(CompactDisc.class);
        assertNotNull(compactDisc);
    }
}

掃描的時候,會直接按照該類所在的包,作為基礎包,進行掃描

對依賴的實現自動裝配

添加注解以后,初始化bean以后,會盡可能的滿足bean的依賴

目錄如下

package com.ming;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 *
 * @author ming
 */
@Component
public class CDPlay implements MediaPlayer {
    CompactDisc compactDisc = null;

    @Autowired
    public CDPlay(CompactDisc compactDisc){
        this.compactDisc = compactDisc;
    }

    /**
     * 規定方法為play
     */
    @Override
    public void play() {
        compactDisc.play();
    }
}
package com.ming;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * 定義cd接口
 * @author ming
 */
@Configuration
@ComponentScan
public interface CompactDisc {
    /**
     * 規定方法為play
     */
    void play();
}
package com.ming;

import org.springframework.context.annotation.ComponentScan;

/**
 * @author ming
 */
@ComponentScan
public interface MediaPlayer {
    /**
     * 規定方法為play
     */
    public void play();
}
package com.ming;

import org.springframework.stereotype.Component;

/**
 *
 * @author ming
 */

// 啟用組件掃描
@Component
class SgtPeppers implements CompactDisc {
    private String title = "標題";
    private String artist = "內容";
    /**
     * 規定方法為play
     */
    @Override
    public void play() {
        System.out.println(this.artist + this.title);
    }
}


    
package com.ming;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import static org.junit.Assert.*;

public class CompactDiscTest {
    private ApplicationContext applicationContext = null;

    @Before
    public void setUp() throws Exception {
        applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    }

    @After
    public void tearDown() throws Exception {

    }

    @Test
    public void play() {
        MediaPlayer mediaPlayer = (MediaPlayer) applicationContext.getBean(MediaPlayer.class);
        mediaPlayer.play();
        assertNotNull(mediaPlayer);
    }
}

運行結果

在這里,在裝配的時候,盡量滿足配置規則進行裝配

Java代碼裝配bean

package com.ming;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 *
 * @author ming
 */
@Configuration  // 注解表明這是一個配置類
public class CDPlayerConfig {

    @Bean
    public CompactDisc sgtPeppers(){
        // 此處進行裝配
        return new SgtPeppers();
    }

    /**
     * 注入裝配
     * @return
     */
    @Bean
    public CDPlay cdPlay(){
        return new CDPlay(this.sgtPeppers());
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74599.html

相關文章

  • Spring核心 裝配Bean

    摘要:它的構造器上添加了注解,這表明當創建的時候,會通過這個構造器來進行實例化并且會傳入一個可設置給類型的通過自動裝配,將一個注入到之中注解不僅能夠用在構造器上,還能用在屬性的方法上。 Spring配置的可選方案 Spring容器負責創建應用程序中的bean并通過DI來協調這些對象之間的關系。當描述bean如何進行裝配時,Spring具有非常大的靈活性,它提供了三種主要的裝配機制: 在XM...

    wanglu1209 評論0 收藏0
  • Spring - 裝配Bean

    摘要:裝配任何一個成功的應用都是由多個為了實現某個業務目標而相互協作的組件構成的創建應用對象之間協作關系的行為通常稱為裝配,這也是依賴注入配置的可選方案在中進行顯示配置在中進行顯示配置隱式的發現機制和自動裝配自動化裝配組件掃描會自動發現應用上下文 裝配Bean 任何一個成功的應用都是由多個為了實現某個業務目標而相互協作的組件構成的 創建應用對象之間協作關系的行為通常稱為裝配(wiring)...

    CNZPH 評論0 收藏0
  • Spring總結(一)

    摘要:如果這個類的方法有修飾,就成為第二種的裝配方式代碼生成要自動裝配的類要保留默認構造函數,需要裝配的屬性使用來裝配。顯示裝配分為兩種,一種是代碼裝配,一種是裝配。和相比,上面這種形式的中的是調用默認構造函數生成的。 Bean的自動裝配 通過@ComponentScan掃描發現將要裝配到ApplicationContext中的Bean。@ComponentScan中如果沒有寫包名,那么默...

    OpenDigg 評論0 收藏0
  • 2.走向自動裝配

    摘要:走向自動裝配模式注解裝配走向自動裝配課程介紹手動裝配自動裝配自動裝配是以手動裝配為基礎實現的手動裝配模式注解模式注解是一種用于聲明在應用中扮演組件角色的注解。 2.走向自動裝配 Spring 模式注解裝配 2-1 走向自動裝配 課程介紹 spring framework手動裝配 spring boot自動裝配 spring boot自動裝配是以spring framework手動裝...

    rose 評論0 收藏0
  • 使用Spring annotation編程的快感

    摘要:創建應用對象之間協作關系的行為通常稱為裝配中有三種裝配的方法在中顯式配置在中顯式配置隱式的發現機制和自動裝配這兒要說的就是第三個自動發現與裝配,它會帶來編程的快感。 一、前言 Spring的Bean Factory所實現的IoC輕量級容器,可以很方便地讓大家基于POJO開發JavaEE應用程序。 創建應用對象之間協作關系的行為通常稱為裝配 Spring中有三種裝配Bean的方法 在X...

    BWrong 評論0 收藏0

發表評論

0條評論

Leo_chen

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<