Spring/Mybatis/Hibernate的分别配置与整合配置(2/2 配置文件)

###步骤见此处

1.SpringIoC,DI配置 (ApplicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="userBean" class="com.luhao.bean.UserBean" scope="prototype" p:userName="你好"></bean>
<bean id="testBean" class="com.luhao.bean.TestBean">
    <property name="id" value="1"></property>
    <property name="arr">
        <list>
            <value>1</value>
            <value>2</value>
        </list>
    </property>
    <property name="list">
        <list>
            <value>3</value>
            <value>4</value>
        </list>
    </property>
    <property name="map">
        <map>
            <entry key="123" value="123"></entry>
            <entry key="321" value="321"></entry>
            <entry key="1234567" value="1234567"></entry>
        </map>
    </property>
    <property name="properties">
        <props>
            <prop key="user">root</prop>
            <prop key="password">luhao123</prop>
            <prop key="name">luhao</prop>
        </props>
    </property>
</bean>
</beans>

2.SpringAOP配置 (ApplicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 扫描需要的包 -->
<context:component-scan base-package="com.luhao.*"></context:component-scan>
<!-- 创建需要的对象-->
<bean id="userAspect" class="com.luhao.aop.UserAspect"></bean>
<bean id="userService" class="com.luhao.service.impl.UserServiceImpl"></bean>
<bean id="userDao" class="com.luhao.dao.impl.UserDaoImpl"></bean>
<!-- 配置切点 -->
<aop:config>
    <aop:pointcut expression="execution(* com.luhao.*..*(..))" id="pointcut1"/>
<!-- 配置切面 -->
    <aop:aspect ref="userAspect">
        <aop:before method="before" pointcut-ref="pointcut1"/>
        <aop:after method="after" pointcut-ref="pointcut1"/>
    </aop:aspect>
</aop:config>
</beans>

3.Mybatis配置MybatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 1.键值对文件 -->
    <properties resource="db.properties">
        <property name="test" value="test"/>
    </properties>
    <!-- 2.设置,暂只关注日志 -->
    <settings>
        <!-- 日志 -->
        <setting name="logImpl" value="LOG4J"/>
        <!-- 延迟加载开关 -->
        <setting name="lazyLoadingEnabled" value="true"></setting> 
        <!-- 关闭积极加载 -->
        <setting name="aggressiveLazyLoading" value="false"></setting>

    </settings>
    <!-- 3.类型别名 ,可以只设置包名-->
    <typeAliases>
        <package name="com.project.bean"/>
    </typeAliases>
    <!-- 4.环境变量 -->
    <environments default="development">
        <!-- 默认的开发环境,一般一个environment代表一个数据库 -->
        <environment id="development">
            <!-- 事务管理方式 -->
            <transactionManager type="JDBC"/>
            <!-- 声明使用连接池,并设置连接信息 -->
            <dataSource type="POOLED">
              <property name="driver" value="${driver}"/>
              <property name="url" value="${url}"/>
              <property name="username" value="${username}"/>
              <property name="password" value="${password}"/>
              <property name="poolMaximumActiveConnections" value="30"/>
            </dataSource>
          </environment>
    </environments>
    <!-- 5.管理映射关系表 -->
    <mappers>
        <mapper resource="com/project/mapper/ExpertMapper.xml"/>
        <mapper resource="com/project/mapper/ClogMapper.xml"/>
        <mapper resource="com/project/mapper/CdtlMapper.xml"/>
        <mapper resource="com/project/mapper/AreaMapper.xml"/>
        <mapper resource="com/project/mapper/ClassMapper.xml"/>
        <mapper resource="com/project/mapper/DisasterLogMapper.xml"/>
        <mapper resource="com/project/mapper/MedicineMapper.xml"/>
        <mapper resource="com/project/mapper/StockoutDetalMapper.xml"/>
        <mapper resource="com/project/mapper/StockoutLogMapper.xml"/>
        <mapper resource="com/project/mapper/UserMapper.xml" />
        <mapper resource="com/project/mapper/OperateLogMapper.xml" />
        <mapper resource="com/project/mapper/IllnessDaomapper.xml"></mapper>
        <mapper resource="com/project/mapper/InsectDaomapper.xml"></mapper>
        <mapper resource="com/project/mapper/MouseDaomapper.xml"></mapper>
    </mappers>
</configuration>

4.Hibernate配置 hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

    <session-factory>
        <!-- 数据库连接配置 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://127.0.0.1:3306/db_hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <!-- 指定Hibernate的连接提供方式,如果没有将不会使用c3p0作为Hibernate的连接池 -->
        <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
        <!-- 最大连接数 -->
        <property name="hibernate.c3p0.max_size">20</property>
        <!-- 最小连接数 -->
        <property name="hibernate.c3p0.min_size">5</property>
        <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
        <property name="hibernate.c3p0.timeout">120</property>
        <!-- 最大的PreparedStatement的数量 -->
        <property name="hibernate.c3p0.max_statements">100</property>
        <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
        <property name="hibernate.c3p0.idle_test_period">120</property>
        <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
        <property name="hibernate.c3p0.acquire_increment">2</property>
        <!-- 每次都验证连接是否可用 -->
        <property name="hibernate.c3p0.validate">true</property>

        <!-- SQL 方言 -->
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <!-- 在控制台输出sql语句 -->
        <property name="show_sql">true</property>
        <!-- 在启动时根据配置更新数据库 -->
        <property name="hbm2ddl.auto">update</property>

        <!-- hibernate加载映射的实体 -->
        <mapping class="com.luhao.entity.TypeEntity"></mapping>
        <mapping class="com.luhao.entity.ProductEntity"></mapping>
        <mapping class="com.luhao.entity.StockEntity"></mapping>
        <mapping class="com.luhao.entity.StockDetalEntity"></mapping>

    </session-factory>
</hibernate-configuration>

5.Spring+Mybatis配置(1/2) ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
    <!-- 导入propertis文件 -->
    <context:property-placeholder location="com/luhao/resource/db.properties"></context:property-placeholder>
    <!-- 自动扫描包 -->
    <context:component-scan base-package="com.luhao.*"></context:component-scan>
    <!-- 获得数据源 (Spring管理Mybatis 1/3) -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="url" value="${url}"></property>
        <property name="username" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="driverClassName" value="${driver}"></property>
    </bean>
    <!-- 获得SqlSessionFactory (Spring管理Mybatis 2/3) -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>        
        <property name="configLocation" value = "classpath:com/luhao/resource/MybatisConfig.xml"></property>        
    </bean>
    <!-- 扫描接口,根据mapper文件生成实现类,参数1:需要扫描的接口 (Spring管理Mybatis 3/3)-->
    <bean id="mapperConfig" class = "org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.luhao.dao"></property>
        <property name="sqlSessionFactoryBeanName" value = "sqlSessionFactory"></property>
    </bean>
    <!-- 配置事件管理器 (Spring配置Mybatis事物 1/3)-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!-- 配置事件通知 (Spring配置Mybatis事物 2/3)-->
    <tx:advice id="advice1" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*"></tx:method>
            <tx:method name="add*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception" no-rollback-for="Exception"></tx:method>
            <tx:method name="find*" read-only="true"></tx:method>
        </tx:attributes>
    </tx:advice>
    <!-- 配置AOP (Spring配置Mybatis事物 3/3)-->
    <aop:config>
        <aop:pointcut id="pointcut1" expression="execution(* com.luhao.service.IOrderService.add(..))"></aop:pointcut>
        <aop:advisor advice-ref="advice1" pointcut-ref="pointcut1"></aop:advisor>
    </aop:config>
    <!-- 配置业务层Bean -->
    <bean id="orderService" class="com.luhao.service.impl.OrderServiceImpl"></bean>
</beans>        

5.Spring+Mybatis配置(2/2) MybatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 类型别名 ,可以只设置包名-->
    <typeAliases>
        <package name="com.luhao.bean"/>
    </typeAliases>  
    <!-- 管理映射关系表 -->
    <mappers>
        <mapper resource="com/luhao/mapper/BookMapper.xml" />
        <mapper resource="com/luhao/mapper/OrderMapper.xml" />
    </mappers>
</configuration>

7.Spring+Hibernate配置 ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 约束 -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd ">

    <!-- 导入propertis文件 -->
    <context:property-placeholder location="com/luhao/resource/db.properties"></context:property-placeholder>
    <!-- 自动扫描包 -->
    <context:component-scan
        base-package="com.luhao.Entity,com.luhao.service,com.luhao.dao"></context:component-scan>
    <!-- Spring管理Hibernate第一步:配置数据源 -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="url" value="${url}"></property>
        <property name="username" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="driverClassName" value="${driver}"></property>
    </bean>
    <!-- 使用c3p0连接池的配置 -->
    <bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${url}"></property>
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="driverClass" value="${driver}"></property>
        <property name="maxPoolSize" value="20" />
        <property name="minPoolSize" value="5" />
        <!-- 初始化建立的连接数 -->
        <property name="initialPoolSize" value="10" />
        <!-- 最大空闲时间,120秒内未被使用的连接将被丢弃 -->
        <property name="maxIdleTime" value="120" />
        <!-- 当连接池耗尽,且未达到最大连接数时,一次获取的连接数 -->
        <property name="acquireIncrement" value="2" />
        <!-- 空闲检查时间间隔, 每隔120秒检查连接池里的空闲连接 ,单位是秒 -->
        <property name="idleConnectionTestPeriod" value="60" />
    </bean>
    <!-- Spring管理Hibernate第二步:配置sessionFacoty -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource2"></property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
            </props>
        </property>
        <property name="packagesToScan" value="com.luhao.entity"></property>
    </bean>
    <!-- 数据库事务第一步:配置数据库管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 数据库事务第二步:配置事务增强 -->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="regist" rollback-for="Execption" />
            <tx:method name="login" read-only="true" />
            <tx:method name="*" />
        </tx:attributes>
    </tx:advice>
    <!-- 数据库事务第三步:配置切点 -->
    <aop:config>
        <aop:pointcut expression="execution(* com.luhao.service.*.*(..))"
            id="transactionPoint" />
        <aop:advisor advice-ref="transactionAdvice" pointcut-ref="transactionPoint" />
    </aop:config>

</beans>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值