基於註解方式配置bean以及自動轉配屬性

2021-08-20 09:16:21 字數 1938 閱讀 4894

在classpath中掃瞄bean元件

元件掃瞄(component scanning):spring能夠從classpath下自動掃瞄,偵測和例項化具有特定註解的bean元件。

特定元件包括:

@component:基本註解,標識了乙個受spring管理的bean元件

@respository:標識持久層bean元件

@service:標識服務層(業務層)bean元件

@controller:標識表現層(控制層)bean元件

對於掃瞄到的元件,spring有預設的命名策略:使用非限定類名,第乙個字母小寫。也可以在註解中通過value屬性值標識元件的名稱。

元素還會自動註冊autowiredannotationbeanpostprocessor例項,該例項可以自動裝配具有@autowired和@resource、@inject註解的屬性。

預設情況下,所有使用@autowired註解的屬性都需要被設定。當spring找不到匹配的bean裝配屬性時,會丟擲異常,若某一屬性允許不被設定,可以設定@autowired註解的required屬性為false。

@resource註解要求提供乙個bean名稱的屬性,若該屬性為空,則自動採用標註處的變數或方法名作為bean的名稱。

@inject和@autowired註解一樣也是按型別匹配注入的bean,但沒有required屬性。建議使用@autowired註解,

下面**給出乙個如何使用@component的例子,建立乙個person類,使用@component標識這是乙個受spring管理的bean元件,並使用value屬性標定該bean的id值。

package com.spring.c1;

import org.springframework.stereotype.component;

@component(value="person1")

public class person

}

在xml檔案中,使用context:component-scan標籤,並指定掃瞄的包為。至此就完成了簡單的配置。

下面**給出乙個如何使用@respository,@service,@controller三個註解的例子。我們建立三個類,分別為action類(代表控制層),myservice類(業務層)和dao類(持久層)。

action類,使用@controller標識為控制層,並使用@autowired註解進行自動裝配

package com.spring.c1;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.stereotype.controller;

@controller

public class action

}

myservice類,使用@service標識為業務層。並使用@autowired註解進行自動裝配

package com.spring.c1;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.stereotype.service;

@service

public class myservice

}

dao類,用@repository標識為持久層。

package com.spring.c1;

import org.springframework.stereotype.repository;

@repository

public class dao

}

基於註解的方式配置Bean

1.元件掃瞄 component scanning spring能夠從classpath下自動掃瞄,偵測和例項化具有特定註解的元件。2.特定的元件包括 3.對於掃瞄到的元件,spring有預設的命名策略,使用非限定類名,第乙個字母小寫,也可以在註解中通過value屬性值標識元件的名稱。例子 user...

Spring 基於註解的方式配置bean

1.常用的元件註解 component 用來標識乙個普通元件 repository 用來標識乙個持久化層的元件 service 用來標識乙個業務邏輯層的元件 controller 用來標識乙個表現層的元件 如果想要將某些類交給ioc容器管理,除了在類上新增以上註解之外,還需要在spring的配置 檔...

spring基於註解的方式配置Bean

要把乙個bean加上註解然後放在ioc容器裡面,需要在classpath中先進行元件掃瞄 component 基本註解,標識了乙個手spring管理的元件 respository 標識持久層元件 service 標識服務層 業務層 元件 controller 標識表現層元件 base package...