Spring通過註解實現工廠創建對象

1.前言

在創建對象的過程中,常常創建出的對象並不能直接使用,它可能需要若干步複雜的步驟,處理完成後才能正常使用。比如有一個網絡連接的類NetConn,類中有加載配置文件的方法load(),測試網絡連通性的方法ping(),連接網絡的方法conn(),登陸方法login(),登陸成功發送數據的方法sendData()。當我們創建了NetConn類的對象時,並不能直接使用該對象去發送數據。因爲前面還有一系列的步驟需要執行,只有執行完畢,登陸成功後才能發送數據。

之前用過三種工廠模式實現了該過程,原文鏈接:https://blog.csdn.net/qq_32224047/article/details/106960417。此處使用註解實現。 

2.實現過程 

2.1導入需要的jar包

此處採用手動導入,未使用maven,需要使用註解,要導入下面圈出的包

2.2創建網絡連接的類NetConn及工廠類NetConnFactory

NetConn:


public class NetConn {
    public void load(){
        System.out.println("加載配置文件..");
    }
    public void ping(){
        System.out.println("測試網絡連通性..");
    }
    public void conn(){
        System.out.println("連接網絡..");
    }
    public void login(){
        System.out.println("登陸..");
    }
    public void sendData(){
        System.out.println("發送數據..");
    }
}

NetConnFactory :@Component註解--將類註明爲一個spring管理的bean , @Bean("netConn")註解將方法getInstance()命名爲netConn並交給spring容器管理

Spring的@Bean註解用於告訴方法,產生一個Bean對象,然後這個Bean對象交給Spring管理。 產生這個Bean對象的方法Spring只會調用一次,隨後這個Spring將會將這個Bean對象放在自己的IOC容器中。



import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * 實例工廠
 */
@Component
public class NetConnFactory {
    @Bean("netConn")
    public NetConn getInstance(){
        NetConn conn = new NetConn();
        conn.load();
        conn.ping();
        conn.conn();
        conn.login();
        return conn;
    }
}

在web.xml中開啓包掃描即可

    <!--開啓包掃描-->
    <context:component-scan base-package="cn.tedu.domains"/>

調用測試:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章