簡體   English   中英

創建和配置將添加到某些Spring MVC項目中以檢索公共信息的litle Spring項目的正確方法是什么?

[英]What is the correct way to create and configure a litle Spring project that will be add to some Spring MVC projects to retrieve common info?

我有以下情況。

我有一些Spring MVC應用程序,該應用程序共享一個數據庫,其中包含用戶信息和這些用戶的權限。

因此,我必須執行以下操作:我必須創建一個簡單地實現服務和檢索這些信息的存儲庫的Spring“模塊”(我不知道模塊是否是合適的術語)。 然后,我必須將此“模塊”添加到所有Spring MVC項目中(這樣我就可以編寫一次檢索用戶信息的組件,並將其作為依賴項簡單地添加到當前的Web項目中)。

對於這個模塊,我必須配置到數據庫的JPA連接和bean定義。

我的疑問是:我是否要創建與此模塊相關的bean.xml文件(該項目作為Spring MVC項目的依賴項添加),還是可以將這些bean和此連接配置為root-context.xml文件(配置添加了此模塊的Spring MVC項目的bean)?

我最近實際上做了類似的事情。 我的方法(我們使用Hibernate)是將所有映射文件,數據庫連接設置,DAO層bean和Service層bean包含在Web應用程序依賴的jar中。 它減少了基本bean安裝程序的重復(我們仍然使用XML配置而不是注釋)。

Spring MVC應用程序啟動時,它將從之前配置的文件中獲取配置。 根據您的描述,您正在使用這種方式

<web-app>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/root-context.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

如果在其他Spring xml文件中有一些配置,則需要導入到根文件中。

<import resource="connection/Spring-Connection.xml"/>

這里有三個鏈接可以為您提供幫助

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

http://www.mkyong.com/spring/load-multiple-spring-bean-configuration-file/

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-xml-example/

start.spring.io開始。 在這里,您可以選擇要包含在應用程序中的模塊,並可以從那里開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM