简单的记录下,方便以后用
- 回头看web.xml文件,想想web项目,只是定义了很多规范,web容器需要按照这些规范来读取、解析、展示项目中的文件;定义这些规范才真牛逼,需要考虑项目的各种应用场景,能够做出对应的措施;
- 只看web.xml文件中Spring的配置,其实充当过滤器的角色,接管所有的请求
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
- 上面这段代码,其实和spring中bean定义没多大区别,最终都落实到某个类上,只是写法不同而已
- 下面是spring-mvc.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<context:component-scan base-package="com.ucredit">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<mvc:view-controller path="/" view-name="/static/login.html"/>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/"/>
<mvc:exclude-mapping path="/static"/>
<bean class="com.ucredit.LogInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
<tx:annotation-driven/>
<context:annotation-config/>
<context:annotation-config/>
<bean id="Variables" class="com.util.Variables">
<property name="redis_nodes" value="${redis.nodes}"/>
</bean>
<bean id="contrarianDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="contrarianDataSource"/>
<property name="packagesToScan" value="com.ucredit"/>
<property name="configLocation" value="/hibernate_cfg.xml"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
- 最初接触Spring+Hibernaate时,感觉很奇怪,感觉什么连接都没有写,仅仅配置了两个Hibernate相关的Bean,就能使用了。接触多了,慢慢有些理解,这跟代码配置JDBC连接是一样的,解析这些Bean以及生成,Spring已经帮你做了,不是多了不起的事,就跟你解析xml文件一样寻常;