1. 程式人生 > 其它 >Spring的常用註解

Spring的常用註解

技術標籤:springspringjava

一、用於建立物件的註解

使用註解需要在xml檔案中配置掃描註解配置的包
<context:component-scan base-package=“com.rpf”></context:component-scan>
@Component
作用:用於把當前類物件存入spring容器中
屬性:value用於指定bean的id。當我們不寫時 他的預設值是當前類名首字母改小寫
只有一個屬性時value可以不寫@Component(“accountService”)
它們的作用和xml檔案中編寫bean標籤實現的功能是一樣的
Controller:一般用在表現層

Service:一般用在業務層
Repository:一般用於持久層 可以互相替換不建議
以上三個註解作用和屬性與Component時一模一樣的
它們三個是spring框架為我們提供明確的三層使用的註解 使我們的三層物件更加清晰

@Repository("accountDao1")
public class AccountDaoImpl implements AccountDao {

   public  void saveAccount(){
      System.out.println("儲存了賬戶");
    }
}

二、用於注入資料的

它們的作用和xml配置檔案中的bean標籤中寫一個 property標籤是一樣的
Autowired:
作用:自動按照型別注入。只要容器中有唯一的一個bean物件型別和要注入的變數型別匹配
就可以注入成功
如果ioc容器中沒有任何bean的型別和要注入的變數型別匹配 則報錯
如果ioc容器中有多個型別匹配時:
出現位置:可以是成員變數上也可以是方法上
細節:使用註解注入時set方法就不是必須的了
Qualifier:
作用:在按照型別注入的基礎之上按照名稱注入 它在給類成員注入時不能單獨使用 但是給類方法引數注入時可以
屬性 value用於指定注入bean的id
再給類成員注入時不能獨立使用必須和Autowired配合

Resource:
作用:直接按照bean的id注入 可以獨立使用
屬性:name 用於指定bean的id
以上三個註解只能注入其他bean型別的資料 而基本型別和string型別無法使用上述註解
而集合型別的注入只能通過xml來實現。
@Value
作用 用於注入基本型別和string型別的資料
屬性 value用於指定資料的值 他可以使用spring中的SpEL(也就是Spring的EL表示式)
SpEL的寫法: ${表示式}

三、用於改變作用域的

用於改變作用範圍的
它們的作用就和bean標籤中使用scope屬性是一樣的
@Scope
作用:用於指定bean的作用範圍
屬性:value 指定範圍的取值 常用取值singleton prototype 單例 多例 預設是單例
測試:
業務層類上配置

@Service(value = "accountService")
@Scope("prototype")
public class AccountServiceImpl implements AccountService
 AccountService as  = (AccountService)ac.getBean("accountService");
        AccountService as2  = (AccountService)ac.getBean("accountService");
        System.out.println(as==as2);

在這裡插入圖片描述

四、和生命週期相關的(瞭解)

 它們的作用就和bean標籤中init-method和destroy-method的作用是一樣的
  @PreDestroy
      作用:用於指定銷燬方法
   @PostConstruct
      作用:用於指定初始化方法

業務層配置

  @PostConstruct
    public void init(){
        System.out.println("初始化方法執行了");
    }
    @PreDestroy
    public void destroy(){
        System.out.println("銷燬方法執行了");
    }

測試

 AccountService as  = (AccountService)ac.getBean("accountService");
as.saveAccount();
        ac.close();//單例的隨容器生命週期相同

在這裡插入圖片描述