第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

紅顏莎娜 2019-11-15 17:04:17
我的Spring應(yīng)用程序有一個(gè)問題,該應(yīng)用程序啟動(dòng)時(shí)會(huì)兩次創(chuàng)建我的@Service類。我知道這是我的配置出現(xiàn)的問題,就像我以前經(jīng)歷過的那樣,但是我到底在做什么錯(cuò)呢?我在下面布置配置的方式有什么根本錯(cuò)誤嗎?(我忽略了我認(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)驗(yàn) 獲得超4個(gè)贊

除了@GaryF的答案外,還有以下針對(duì)該問題的漂亮解決方案(用于產(chǎn)生的項(xiàng)目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意味著,所有自動(dòng)發(fā)現(xiàn)的帶注釋的Bean都在DispatcherServlet的上下文(即從中加載的上下文myapp-servlet.xml)中注冊(cè)。


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


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


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

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

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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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