成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Spring 裝配

Leo_chen / 3157人閱讀

摘要:有以下三種配置在中配置在中配置自動(dòng)裝配自動(dòng)裝配這里以轉(zhuǎn)載為例子首先需要建立概念即,定義一個(gè)接口只需要實(shí)現(xiàn)添加兩個(gè)注解,定義接口規(guī)定方法為啟用組件掃描標(biāo)題內(nèi)容規(guī)定方法為掃描的時(shí)候,會(huì)直接按照該類(lèi)所在的包,作為基礎(chǔ)包,進(jìn)行掃描對(duì)依賴(lài)的實(shí)現(xiàn)自動(dòng)裝

有以下三種配置
在xml中配置
在java中配置
bean自動(dòng)裝配

自動(dòng)裝配

這里以轉(zhuǎn)載CD為例子

首先需要建立CD概念

即,定義一個(gè)cd接口

只需要實(shí)現(xiàn)添加兩個(gè)注解,

package com.ming;

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

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

import org.springframework.stereotype.Component;

/**
 *
 * @author ming
 */

// 啟用組件掃描
@Component
class SgtPeppers implements CompactDisc {
    private String title = "標(biāo)題";
    private String artist = "內(nèi)容";
    /**
     * 規(guī)定方法為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);
    }
}

掃描的時(shí)候,會(huì)直接按照該類(lèi)所在的包,作為基礎(chǔ)包,進(jìn)行掃描

對(duì)依賴(lài)的實(shí)現(xiàn)自動(dòng)裝配

添加注解以后,初始化bean以后,會(huì)盡可能的滿(mǎn)足bean的依賴(lài)

目錄如下

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;
    }

    /**
     * 規(guī)定方法為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 {
    /**
     * 規(guī)定方法為play
     */
    void play();
}
package com.ming;

import org.springframework.context.annotation.ComponentScan;

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

import org.springframework.stereotype.Component;

/**
 *
 * @author ming
 */

// 啟用組件掃描
@Component
class SgtPeppers implements CompactDisc {
    private String title = "標(biāo)題";
    private String artist = "內(nèi)容";
    /**
     * 規(guī)定方法為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);
    }
}

運(yùn)行結(jié)果

在這里,在裝配的時(shí)候,盡量滿(mǎn)足配置規(guī)則進(jìn)行裝配

Java代碼裝配bean

package com.ming;

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

/**
 *
 * @author ming
 */
@Configuration  // 注解表明這是一個(gè)配置類(lèi)
public class CDPlayerConfig {

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74599.html

相關(guān)文章

  • Spring核心 裝配Bean

    摘要:它的構(gòu)造器上添加了注解,這表明當(dāng)創(chuàng)建的時(shí)候,會(huì)通過(guò)這個(gè)構(gòu)造器來(lái)進(jìn)行實(shí)例化并且會(huì)傳入一個(gè)可設(shè)置給類(lèi)型的通過(guò)自動(dòng)裝配,將一個(gè)注入到之中注解不僅能夠用在構(gòu)造器上,還能用在屬性的方法上。 Spring配置的可選方案 Spring容器負(fù)責(zé)創(chuàng)建應(yīng)用程序中的bean并通過(guò)DI來(lái)協(xié)調(diào)這些對(duì)象之間的關(guān)系。當(dāng)描述bean如何進(jìn)行裝配時(shí),Spring具有非常大的靈活性,它提供了三種主要的裝配機(jī)制: 在XM...

    wanglu1209 評(píng)論0 收藏0
  • Spring - 裝配Bean

    摘要:裝配任何一個(gè)成功的應(yīng)用都是由多個(gè)為了實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo)而相互協(xié)作的組件構(gòu)成的創(chuàng)建應(yīng)用對(duì)象之間協(xié)作關(guān)系的行為通常稱(chēng)為裝配,這也是依賴(lài)注入配置的可選方案在中進(jìn)行顯示配置在中進(jìn)行顯示配置隱式的發(fā)現(xiàn)機(jī)制和自動(dòng)裝配自動(dòng)化裝配組件掃描會(huì)自動(dòng)發(fā)現(xiàn)應(yīng)用上下文 裝配Bean 任何一個(gè)成功的應(yīng)用都是由多個(gè)為了實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo)而相互協(xié)作的組件構(gòu)成的 創(chuàng)建應(yīng)用對(duì)象之間協(xié)作關(guān)系的行為通常稱(chēng)為裝配(wiring)...

    CNZPH 評(píng)論0 收藏0
  • Spring總結(jié)(一)

    摘要:如果這個(gè)類(lèi)的方法有修飾,就成為第二種的裝配方式代碼生成要自動(dòng)裝配的類(lèi)要保留默認(rèn)構(gòu)造函數(shù),需要裝配的屬性使用來(lái)裝配。顯示裝配分為兩種,一種是代碼裝配,一種是裝配。和相比,上面這種形式的中的是調(diào)用默認(rèn)構(gòu)造函數(shù)生成的。 Bean的自動(dòng)裝配 通過(guò)@ComponentScan掃描發(fā)現(xiàn)將要裝配到ApplicationContext中的Bean。@ComponentScan中如果沒(méi)有寫(xiě)包名,那么默...

    OpenDigg 評(píng)論0 收藏0
  • 2.走向自動(dòng)裝配

    摘要:走向自動(dòng)裝配模式注解裝配走向自動(dòng)裝配課程介紹手動(dòng)裝配自動(dòng)裝配自動(dòng)裝配是以手動(dòng)裝配為基礎(chǔ)實(shí)現(xiàn)的手動(dòng)裝配模式注解模式注解是一種用于聲明在應(yīng)用中扮演組件角色的注解。 2.走向自動(dòng)裝配 Spring 模式注解裝配 2-1 走向自動(dòng)裝配 課程介紹 spring framework手動(dòng)裝配 spring boot自動(dòng)裝配 spring boot自動(dòng)裝配是以spring framework手動(dòng)裝...

    rose 評(píng)論0 收藏0
  • 使用Spring annotation編程的快感

    摘要:創(chuàng)建應(yīng)用對(duì)象之間協(xié)作關(guān)系的行為通常稱(chēng)為裝配中有三種裝配的方法在中顯式配置在中顯式配置隱式的發(fā)現(xiàn)機(jī)制和自動(dòng)裝配這兒要說(shuō)的就是第三個(gè)自動(dòng)發(fā)現(xiàn)與裝配,它會(huì)帶來(lái)編程的快感。 一、前言 Spring的Bean Factory所實(shí)現(xiàn)的IoC輕量級(jí)容器,可以很方便地讓大家基于POJO開(kāi)發(fā)JavaEE應(yīng)用程序。 創(chuàng)建應(yīng)用對(duì)象之間協(xié)作關(guān)系的行為通常稱(chēng)為裝配 Spring中有三種裝配Bean的方法 在X...

    BWrong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<