僱員管理系統ssh之準備2

(5)服務層(事務管理器)

這裏寫圖片描述
僱員管理服務

package com.journey.service.interfaces;

import java.util.List;

import com.journey.pojo.Employee;

public interface IEmployeeService {
    public void addEmp(Employee emp);
    public void delEmp(java.io.Serializable id);
    public void updEmp(Employee emp);
    public List<Employee> showEmps();
}
package com.journey.service.impl;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional;

import com.journey.pojo.Employee;
import com.journey.service.interfaces.IEmployeeService;

public class EmployeeServiceImpl implements IEmployeeService {
    //提供get和set方法,讓Spring注入會話工廠
    private SessionFactory sessionFactory;
    //配置Transactional讓Spring的事務管理器接管該service事務
    @Transactional
    @Override
    public void addEmp(Employee emp) {
        sessionFactory.getCurrentSession().save(emp);
    }

    @Override
    public void delEmp(Serializable id) {
        // TODO Auto-generated method stub

    }

    @Override
    public void updEmp(Employee emp) {
        // TODO Auto-generated method stub

    }

    @Override
    public List<Employee> showEmps() {
        // TODO Auto-generated method stub
        return null;
    }

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }
}

回話工廠有Spring接管
事務管理由Spring接管
配置applicationContext.xml文件

<!-- ... -->
<!-- 配置一個EmployeeServices-->
<bean  id="employeeService" class="com.journey.service.impl.EmployeeServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事務管理器,統一管理事務-->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 啓用事務註解 -->
<tx:annotation-driven transaction-manager="txManager"/>

(6)配置二級緩存
applicationContext.xml

     <property name="hibernateProperties">
        <value>
        hibernate.dialect=org.hibernate.dialect.OracleDialect
        hibernate.hbm2ddl.auto=update
        hibernate.show_sql=false
        hibernate.format_sql=false  
        <!-- 配置二級緩存 -->
        hibernate.cache.use_second_level_cache=true
        hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
        hibernate.generate_statistics=true      
        </value>
    </property>

usage說明了緩存的策略,region指定緩存的區域名

EmployeeService.xml

<hibernate-mapping package="com.journey.pojo">
    <class name="Employee" table="employee0516">
    <cache usage="read-write"/>
    <!-- id用與指定主鍵屬性 -->

ehcache.xml配置

   <defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        />
     <!--defaultCache節點爲缺省的緩存策略
     maxElementsInMemory 內存中最大允許存在的對象數量
     eternal 設置緩存中的對象是否永遠不過期
     overflowToDisk 把溢出的對象存放到硬盤上
     timeToIdleSeconds 指定緩存對象空閒多長時間就過期,過期的對象會被清除掉
     timeToLiveSeconds 指定緩存對象總的存活時間
     diskPersistent 當jvm結束是是否持久化對象
     diskExpiryThreadIntervalSeconds 指定專門用於清除過期對象的監聽線程的輪詢時間-->

整合Strust2

發佈了31 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章