spring自動裝配和interface(spring基礎一)

背景:這個也是之前面試中發現一個短板很多後端概念分不清楚,這次準備系統學習彌補一下不足。我這次想法還是根據項目中遇到問題通過查閱然後做個總結,想做個spring一個系列,也會把查閱的博客地址標註到下面。

首先說下spring的ioc,ioc是控制反轉把獲取實例交給框架,我理解主要解決java中經常new一個對象的問題。主要的途徑就是bean。我們qa項目主要通過xml文件的形式。現簡單說下qa後端項目的結構即58的scf框架:

contract   ------->這是是一個contract包在pom依賴中添加依賴就可以直接rpc遠程調用接口了。

    entity   -------->這個是入參實例,同時對於參數要進行序列化,否則會出現rpc無法調用成功的情況。

    result  --------->通用的返回

    service -------->各種可以調用rpc接口,這裏面都是抽象的interface

pom

service

    ****.service

        bll  ------->功能邏輯

       dao ------->數據庫增刪改查方法

       enums ------->枚舉類型

       impl    -------->實現contract包中抽象的interface

       utils    -------->基礎方法

    resource

        config     ------>這裏面主要包含scf.config(集羣名和ip的配置),數據庫配置

            scfconfig    ------->集羣名和ip的配置

            conf.properties ------->線程數,redis配置和job配置

            db.properties   ------->各個集羣對應數據庫配置

            redis.properties  ------>redis配置

            rocket_mq_consumer.properties  ----->MQ消費配置           

        mapping ------>mybatis的xml配置

        generatorConfig  ------->這個主要mybatis生成dao層數據和mapping中xml數據的。

        mybatis_config    ------->mybatis的全局配置,這個我沒有改過框架來的時候就有。

        scf-contracts       --------->集羣bean的配置文件

        spring-jdbc        ---------->數據庫鏈接bean

1.bean的配置  這個我理解是一個如何寫入bean的過程。

bean配置有兩種一種通過xml文件形式,另一種採用註解配置的方式:

xml配置形式:

id:一般是類型首字母小寫。

class:一般是全類名,這樣java可以通過反射在ioc中獲取bean,但是rpc我這邊使用公司一個jar包"SCFContractFactoryBean"

<property>屬性:這個可以將string,int,list和map類型的字面值注入到bean中,我這邊只遇到過string。目前配置包含兩部分:

contractInterface--->interface接口名稱

rpc--------->tcp地址。

此外property可以一個name對應列表形式value,如圖:

https://blog.csdn.net/bingguang1993/article/details/87690413

https://blog.csdn.net/weixin_43732570/article/details/93201285

https://www.cnblogs.com/myz666/p/8214511.html

2.註解@Autowired 自動裝配

從bean中獲取實例一種方式,我目前遇到基本都是建立rpc連接和調用對應contract的接口。

3.interface接口

interface和類的區別?

3.1 interface主要分成全局變量和抽象方法,所以接口不能實例化,類可以實例化如圖。

3.2 interface需要子接口實現起抽象方法(implements)。接口和接口之間是繼承關係,而且可以多繼承;

類是用來繼承(extends)。繼承只能有一個父類,接口可以有多個。

3.3 類是用來描述實物的共性功能,接口是來描述實物額外功能。

https://www.cnblogs.com/zhuxr/archive/2018/04/24/8926490.html

我昨天還遇到這種情況,如圖:

接口裏面有若干的類,我之前想了好久這個怎麼弄,想着先implemetes實現了,在弄new發現行,後來才知道可以MyFansListVO.Arg arg=new MyFansListVO.Arg();

總結:這個也是整體瞭解spring第一步感覺很多知識點需要多看看,希望可以做的更好的吧,把基礎弄好。

 

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