Spring自動掃瞄註解類的衝突問題

2022-03-08 05:22:33 字數 1424 閱讀 8356

1.

它的作用是隱式地向 spring 容器註冊  

- autowiredannotationbeanpostprocessor、

- commonannotationbeanpostprocessor、

- persistenceannotationbeanpostprocessor、

- requiredannotationbeanpostprocessor 這4個beanpostprocessor。

其作用是如果你想在程式中使用註解,就必須先註冊該註解對應的類,如下圖所示:

依賴的類

註解commonannotationbeanpostprocessor

@resource 、@postconstruct、@predestroy

persistenceannotationbeanpostprocessor的bean

@persistencecontext

autowiredannotationbeanpostprocessor bean

@autowired

requiredannotationbeanpostprocessor

@required

當然也可以自己進行註冊:

2.配置項不但啟用了對類包進行掃瞄以實施注釋驅動 bean 定義的功能,同時還啟用了注釋驅動自動注入的功能(即還隱式地在內部註冊了 autowiredannotationbeanpostprocessor 和 commonannotationbeanpostprocessor),因此當使用 後,就可以將 移除了。

在這裡有乙個比較有意思的問題,就是掃瞄是否需要在二個配置檔案都配置一遍,我做了這麼幾種測試:

啟動正常,但是任何請求都不會被攔截,簡而言之就是@controller失效

(2)只在spring-servlet.xml中配置上述配置

啟動正常,請求也正常,但是事物失效,也就是不能進行回滾

啟動正常,請求正常,也是事物失效,不能進行回滾

在spring-servlet.xml中配置如下

此時啟動正常,請求正常,事物也正常了。

3.

4. use-default-filters="true"   這就意味著會掃瞄指定包下的全部的標有@component的類,並註冊成bean.也就是@component的子註解@service,@reposity等

5.

望靜態資源由web伺服器預設的servlet來處理

出處:

Spring常用註解,自動掃瞄裝配Bean

1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。2 在classpath中加入註解用的jar包 lib j2ee c...

Spring常用註解,自動掃瞄裝配Bean

1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlversion 1.0 encoding ut...

Spring常用註解,自動掃瞄裝配Bean

1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlversion 1.0 encoding ut...