Spring的配置文件

Web.xml将会配置Spring的配置文件位置:

    <servlet>
        <servlet-name>x</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:x-servlet.xml</param-value>
        </init-param>
    </servlet>

这样就会到classes下面去找x-servlet.xml来进行配置。

x-servlet.xml里面包含了几个部分:

1. 静态资源,默认基于springmvc的工程是不允许访问静态资源,比如js,.jpge等,需要指定静态资源文件夹,这样,该文件夹下面的资源可以被访问:

  <mvc:resources mapping="/resources/**" location="/resources/" />

2. 注解类进行自动加载,抛弃了之前的配置(applicationContext.xml),基于注解的模式把开发人员的体力释放出来了。在这些文件夹下面定义的@Controller, @Resource等注解将会被自动加载到Spring容器中进行管理。

  <context:component-scan base-package="lorrywork.emall.domain"/>

3. 定义Bean,bean分为几类:

3.1 定义了JSP-Bean页面位置,从这个开始,就是定义bean了,bean分为几类

    <bean id="jspViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>

3.2 定义Jdbc-Bean,这里注意定义了context:property-placeholder,这个好处是只需要定义数据库信息在一个地方。比如对于servlet-init阶段,无法通过spring-mybatis,可能需要直接使用JDBC,这样只需要在properties中定义一次,既可以直接让JDBC访问,也可以让后续的mybatise从该配置文件中获取数据库信息,这样只需要定义一个地方即可。

    <context:property-placeholder location="classpath:config.properties"/>
    <bean id="jdbcDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${dburl}" />
        <property name="username" value="${uid}" />
        <property name="password" value="${pwd}" />
    </bean>

3.3 mybatis

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="jdbcDataSource" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath*:lorrywork/emall/dao/map/*/*.xml" />
    </bean>
    <!-- DAO类(Mapper类)接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="lorrywork.emall.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

原文地址:https://www.cnblogs.com/xiashiwendao/p/6216291.html