spring學習筆記(7) spring常用註解

2021-07-03 18:00:15 字數 1949 閱讀 9877

1、 引入context命名空間(在spring的配置檔案中),配置檔案如下:

xml** 收藏**

xmlns:context=""

.org/schema/context

.org/schema/context/spring-context-2.5

.xsd

開啟配置

spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。

xml** 收藏**

<?xml version="1.0" encoding="utf-8"?>

xmlns=".org/schema/beans"

xmlns:xsi=""

xmlns:context=""

xsi:schemalocation=".org/schema/beans

.org/schema/beans/spring-beans-2.5.xsd

/spring-context-2.5.xsd">

base-package="cn.pic"/>

beans>

2 在classpath中加入註解用的jar包

lib\j2ee\common-annotations.jar

spring 的context:component-scan掃瞄支援掃瞄jar包的方法:

eclipse自帶的jar打包程式,預設打包的時候有個選項沒有勾選,只要勾選了,就可以了.

———–常用註解——–

–定義bean的註解

@controller

@controller(「bean的名稱」)

定義控制層bean,如action

@service

@service(「bean的名稱」)

定義業務層bean

@repository

@repository(「bean的名稱」)

定義dao層bean

@component

定義bean, 不好歸類時使用.

–自動裝配bean (選用一種註解就可以)

@autowired (srping提供的)

預設按型別匹配,自動裝配(srping提供的),可以寫在成員屬性上,或寫在setter方法上

@autowired(required=true)

一定要找到匹配的bean,否則拋異常。 預設值就是true

@autowired

@qualifier(「bean的名字」)

按名稱裝配bean,與@autowired組合使用,解決按型別匹配找到多個bean問題。

@resource jsr-250提供的

預設按名稱裝配,當找不到名稱匹配的bean再按型別裝配.

可以寫在成員屬性上,或寫在setter方法上

可以通過@resource(name=」beanname」) 指定被注入的bean的名稱, 要是未指定name屬性, 預設使用成員屬性的變數名,一般不用寫name屬性.

@resource(name=」beanname」)指定了name屬性,按名稱注入但沒找到bean, 就不會再按型別裝配了.

@inject 是jsr-330提供的

按型別裝配,功能比@autowired少,沒有使用的必要。

–定義bean的作用域和生命過程

@scope(「prototype」)

值有:singleton,prototype,session,request,session,globalsession

@postconstruct

相當於init-method,使用在方法上,當bean初始化時執行。

@predestroy

相當於destory-method,使用在方法上,當bean銷毀時執行。

–宣告式事務

@transactional

spring學習筆記

spring中兩個十分重要的概念 ioc di aop 1.ioc di inverse of control dependence injection ioc 控制反轉,看起來比較牛b,說起來十分簡單。就是不使用傳統的將類的依賴關係用硬編碼來維護的方式,而是讓容器來管理類之間的依賴,依賴關係在全在...

Spring 學習筆記

實現ioc的兩種方式 dependency injection 和 service locator 關於依賴注入 依賴注入指的是,當您在a物件內部需要b物件的某個功能時,a就依賴於b,您可以直接在a內部例項化b,但日後要修改就麻煩些。如果您不直接在a內部例項化b,而是通過ioc將乙個b例項從外部設定...

spring學習筆記

spring的bean的生命週期 只用反射機制通過class路徑獲得class型別,呼叫預設建構函式例項化乙個物件。呼叫bean的property設定物件的屬性 set方法 如果bean的類實現了beannameaware介面,那麼還會呼叫setbeanname方法 如果bean的類實現了beanf...