最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

@Service被構(gòu)造兩次

@Service被構(gòu)造兩次

紅顏莎娜 2019-11-15 17:04:17
我的Spring應(yīng)用程序有一個問題,該應(yīng)用程序啟動時會兩次創(chuàng)建我的@Service類。我知道這是我的配置出現(xiàn)的問題,就像我以前經(jīng)歷過的那樣,但是我到底在做什么錯呢?我在下面布置配置的方式有什么根本錯誤嗎?(我忽略了我認(rèn)為無關(guān)的所有內(nèi)容)web.xml:<servlet>    <servlet-name>myapp</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>myapp</servlet-name>    <url-pattern>/</url-pattern></servlet-mapping><context-param>    <param-name>contextConfigLocation</param-name>    <param-value>        /WEB-INF/myapp-config.xml        /WEB-INF/myapp-security.xml        /WEB-INF/myapp-mvc.xml    </param-value></context-param><listener>    <listener-class>com.myapp.servlet.MyAppContextListener</listener-class></listener><listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>myapp-servlet.xml<context:component-scan base-package="com.myapp" annotation-config="true" /><mvc:annotation-driven />myapp-config.xml<context:component-scan base-package="com.myapp" annotation-config="true" /><context:annotation-config />
查看完整描述

3 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗 獲得超4個贊

除了@GaryF的答案外,還有以下針對該問題的漂亮解決方案(用于產(chǎn)生的項目Spring Roo):


myapp-config.xml

<!-- Load everything except @Controllers -->

<context:component-scan base-package="com.myapp">

    <context:exclude-filter expression="org.springframework.stereotype.Controller"

        type="annotation"/>

</context:component-scan>

myapp-servlet.xml

<!-- Load @Controllers only -->

<context:component-scan base-package="com.myapp" use-default-filters="false">

    <context:include-filter expression="org.springframework.stereotype.Controller" 

        type="annotation"/>

</context:component-scan>

編輯:


<context:component-scan>從中刪除myapp-config.xml意味著,所有自動發(fā)現(xiàn)的帶注釋的Bean都在DispatcherServlet的上下文(即從中加載的上下文myapp-servlet.xml)中注冊。


但是,推薦的方法是將servlet的上下文用于特定于表示的內(nèi)容(例如控制器),并將根上下文(myapp-config.xml)用于應(yīng)用程序的核心服務(wù)。上面的解決方案使這種方法變得容易。


關(guān)于實際考慮,當(dāng)您將核心服務(wù)放在servlet的應(yīng)用程序上下文中時,不能從該servlet的范圍之外訪問它們,例如,從另一個servlet進(jìn)行訪問(您可能需要使用另一個servlet來實現(xiàn)另一種訪問技術(shù))或過濾器(例如Spring Security過濾器)。這就是在根應(yīng)用程序上下文中擁有核心服務(wù)的原因。


查看完整回答
反對 回復(fù) 2019-11-15
?
揚帆大魚

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊

您正在同一基本程序包上進(jìn)行兩次單獨的組件掃描。刪除其中之一。


查看完整回答
反對 回復(fù) 2019-11-15
  • 3 回答
  • 0 關(guān)注
  • 685 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號