日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java配置文件扫描包_SpringMVC和Spring的配置文件扫描包详解

發(fā)布時間:2024/9/27 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java配置文件扫描包_SpringMVC和Spring的配置文件扫描包详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在Spring整體框架的核心概念中,容器是核心思想,就是用來管理Bean的整個生命周期的,而在一個項目中,容器不一定只有一個,Spring中可以包括多個容器,而且容器有上下層關系,目前最常見的一種場景就是在一個項目中引入Spring和SpringMVC這兩個框架,那么它其實就是兩個容器,Spring是父容器,SpringMVC是其子容器,并且在Spring父容器中注冊的Bean對于SpringMVC容器中是可見的,而在SpringMVC容器中注冊的Bean對于Spring父容器中是不可見的,也就是子容器可以看見父容器中的注冊的Bean,反之就不行。

我們可以使用統(tǒng)一的如下注解配置來對Bean進行批量注冊,而不需要再給每個Bean單獨使用xml的方式進行配置。

(在xml配置了這個標簽后,spring可以自動去掃描base-pack下面或者子包下面的java文件,如果掃描到有@Component @Controller@Service等這些注解的類,則把這些類注冊為bean)

(另外還提供了兩個子標簽

1.????????

2.???????

在說明這兩個子標簽前,先說一下有一個use-default-filters屬性,該屬性默認為true,這就意味著會掃描指定包下的全部的標有@Component的類,并注冊成bean.也就是@Component的子注解@Service,@Reposity等。所以如果僅僅是在配置文件中這么寫

Use-default-filter此時為true那么會對base-package包或者子包下的所有的進行java類進行掃描,并把匹配的java類注冊成bean。

可以發(fā)現(xiàn)這種掃描的粒度有點太大,如果你只想掃描指定包下面的Controller,該怎么辦?此時子標簽就起到了勇武之地。

如下所示

如圖:

從Spring提供的參考手冊中我們得知該配置的功能是掃描配置的base-package包下的所有使用了@Component注解的類,并且將它們自動注冊到容器中,同時也掃描@Controller,@Service,@Respository這三個注解,因為他們是繼承自@Component。

在項目中我們經(jīng)常見到還有如下這個配置,其實有了上面的配置,這個是可以省略掉的,因為上面的配置會默認打開以下配置。以下配置會默認聲明了@Required、@Autowired、 @PostConstruct、@PersistenceContext、@Resource、@PreDestroy等注解。

(可省略)因為有了配置

另外,還有一個和SpringMVC相關如下配置,經(jīng)過驗證,這個是SpringMVC必須要配置的,因為它聲明了@RequestMapping、@RequestBody、@ResponseBody等。并且,該配置默認加載很多的參數(shù)綁定方法,比如json轉換解析器等。

具體場景分析

我們共有Spring和SpringMVC兩個容器,它們的配置文件分別為applicationContext.xml和applicationContext-MVC.xml。

1.在applicationContext.xml中配置了,負責所有需要注冊的Bean的掃描和注冊工作。

2.在applicationContext-MVC.xml中配置,負責SpringMVC相關注解的使用。

3.啟動項目我們發(fā)現(xiàn)SpringMVC無法進行跳轉,將log的日志打印級別設置為DEBUG進行調試,發(fā)現(xiàn)SpringMVC容器中的請求好像沒有映射到具體controller中。

4.在applicationContext-MVC.xml中配置,重啟后,驗證成功,springMVC跳轉有效。

總結

以上是生活随笔為你收集整理的java配置文件扫描包_SpringMVC和Spring的配置文件扫描包详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。