如何在Spring Mvc项目中设置上下文根

时间:2016-11-18 06:27:54

标签: spring apache spring-mvc tomcat spring-boot

我在Tomcat Server中使用Spring MVC项目。每次运行应用程序时,都会更改服务器上下文根目录。 如何设置固定的上下文根?

我的项目名称为:DemoApplication, 首先将此上下文根部署为路径, http://localhost:8080/DemoApplication

第二次, http://localhost:8080/Controller web.xml中:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

servlet的context.xml中:

<annotation-driven />
<resources mapping="/resources/**" location="/resources/" />
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>
<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="url"
        value="jdbc:mysql://localhost:3306/mydp" />
    <beans:property name="username" value="root" />
    <beans:property name="password" value="root" />
</beans:bean>
<beans:bean id="hibernate4AnnotatedSessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource" ref="dataSource" />
    <beans:property name="annotatedClasses">
        <beans:list>
             <beans:value>com.Aquatech.Model.Area</beans:value>
        </beans:list>
    </beans:property>
    <beans:property name="hibernateProperties">
        <beans:props>
            <beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
            </beans:prop>
            <beans:prop key="hibernate.show_sql">false</beans:prop>
        </beans:props>
    </beans:property>
</beans:bean> 
<beans:bean id="GenericDao" class="com.Aquatech.Dao.Impl.GenericDaoImpl">
 <beans:property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory"></beans:property>
</beans:bean>
<beans:bean id="GenericserviceDao" class="com.Aquatech.ServiceDao.Impl.GenericServiceDaoImpl">
 <beans:property name="genericDao" ref="GenericDao"></beans:property>
</beans:bean>
<interceptors>
    <beans:bean id="webContentInterceptor"      class="org.springframework.web.servlet.mvc.WebContentInterceptor">
        <beans:property name="cacheSeconds" value="0" />
        <beans:property name="useExpiresHeader" value="true" />
        <beans:property name="useCacheControlHeader" value="true" />
        <beans:property name="useCacheControlNoStore" value="true" />
    </beans:bean>
</interceptors>
<context:component-scan base-package="com.Aquatech.Controller" />

    

2 个答案:

答案 0 :(得分:5)

  

我的项目名是:DemoApplication,首先是这个上下文根   部署路径是http://localhost:8080/DemoApplication和第二个   时间,http://localhost:8080/Controller

您需要为您的网络应用修复根 (DemoApplication)以修复网址,您可以使用以下选项之一来实现:

(1)按照here

的说明在Tomcat中将root context设置为DemoApplication

(2)如果您使用的是Maven,可以通过在pom.xml中添加以下标记来修复您的战争名称:

<build>
    <finalName>DemoApplication</finalName>
</build>

完成上述任一选项后,您应该可以使用以下网址访问您的应用控制器

http://localhost:8080/DemoApplication/Controller

答案 1 :(得分:0)

如果您使用的是 IntelliJ IDE,您可以转到右上角的服务器(编辑配置>选择服务器(例如:- tomcat 8.5.61)>部署)。 有一个字段“Application context: /(base url server_name)”,这里你可以放任何你想保留的内容。