您的位置:首页 > 其它

雇员管理系统ssh之准备2

2017-05-17 10:53 369 查看
(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 内存中最大允许存在的对象数量
e
4000
ternal 设置缓存中的对象是否永远不过期
overflowToDisk 把溢出的对象存放到硬盘上
timeToIdleSeconds 指定缓存对象空闲多长时间就过期,过期的对象会被清除掉
timeToLiveSeconds 指定缓存对象总的存活时间
diskPersistent 当jvm结束是是否持久化对象
diskExpiryThreadIntervalSeconds 指定专门用于清除过期对象的监听线程的轮询时间-->


整合Strust2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: