基於註解的spring

2021-10-01 20:59:39 字數 2466 閱讀 3588

spring ioc容器的2種形式

儲存bean的形式:

獲取bean的形式:

//建立ioc容器物件

//從ioc容器中獲取bean例項

student student = (student)context.getbean("student");

儲存bean的形式:

就是在方法名前加@bean註解,bean的id就是方法名

@configuration

public class myconfig

}

獲取bean的形式:

//建立ioc容器物件 通過註解形式

//從ioc容器中獲取bean例項

student student = (student)context.getbean("mystudent");

@configuration註解用於定義類

三層元件

controller層使用@controller註解

@controller

public class studentcontroller

service層使用@service註解

@service

public class studentservice

dao層使用@repository註解

@repository

public class studentdao

配置檔案方式將註解所在包載入到ioc掃瞄器中

在配置檔案中配置以下內容:

註解方式將註解所在包載入到ioc掃瞄器中

在ioc容器中(帶有@configuration註解的類)使用@componentscan(value =「org.lyh」)註解,value值為包名:

@configuration

@componentscan(value ="org.lyh")

public class myconfig

}

2…非三層元件

@bean+方法的返回值(id值預設是方法名,可以通過@bean(「id」)修改)

@import

factorybean

@bean+方法的返回值示例:

@bean//bean的id就是方法名

public student mystudent()

@import使用:

1.直接編寫到@import中,id值是全類名

2.自定義importselector介面的實現類,通過重寫selectimports方法實現(方法的返回值就是要納入ioc容器的bean)。並且告知配置類自己編寫的實現類。

3.自定義importbeandefinitionregistrar介面的實現類,重寫方法,並且告知配置類自己編寫的實現類。

直接編寫到@import中示例:

@configuration

public class myconfig

}

自定義importselector介面的實現類示例:

}
自定義importbeandefinitionregistrar介面的實現類示例:

實現importbeandefinitionregistrar介面

public class myimportbeandefinitionregistrar implements importbeandefinitionregistrar

}告知配置類自己編寫的實現類

@configuration

@import(myimportbeandefinitionregistrar.class)

public class myconfig

factorybean(工廠bean)使用:

1.自定義實現類實現factorybean介面並重寫方法

2.註冊到@bean中

注意:獲取bean時需要通過&符號來區分獲取的物件時哪乙個,不加&獲取的是工廠內部的物件,加&獲取的是@bean返回的物件

factorybean示例:

1.自定義實現類實現factorybean介面並重寫方法

spring 基於註解的spring配置

spring是乙個基於ioc和aop的結構j2ee系統的框架 ioc 反轉控制 是spring的基礎,inversion of control 簡單說就是建立物件由以前的程式設計師自己new 構造方法來呼叫,變成了交由spring建立物件 di 依賴注入 dependency inject.簡單地說...

Spring 基於註解的配置

從 spring 2.5 開始就可以使用註解來配置依賴注入。而不是採用 xml 來描述乙個 bean 連線,你可以使用相關類,方法或字段宣告的註解,將 bean 配置移動到元件類本身。在 xml 注入之前進行註解注入,因此後者的配置將通過兩種方式的屬性連線被前者重寫。註解連線在預設情況下在 spri...

Spring 基於註解的AOP

用於記錄日誌的工具類,它裡面提供了公共的 component logger aspect 表示當前類是乙個切面類 public class logger 前置通知 before pt1 public void beforeprintlog 後置通知 afterreturning pt1 public...