Spring引入Hibernate

简单的记录下,方便以后用
  • 回头看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>
            <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller -->
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/"/>
            <mvc:exclude-mapping path="/static"/>
            <!-- 拦截器类 -->
            <bean class="com.ucredit.LogInterceptor"></bean>
        </mvc:interceptor>
        <!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->
    </mvc:interceptors>

    <!-- don't handle the static resource -->
    <mvc:default-servlet-handler/>

    <!-- 激活基于注解的配置 @RequestMapping, @ExceptionHandler,数据绑定 ,@NumberFormat ,
    @DateTimeFormat ,@Controller ,@Valid ,@RequestBody ,@ResponseBody等  -->
    <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文件一样寻常;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值