/** * */ package jframe.mybatis; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jframe.core.plugin.annotation.InjectPlugin; import jframe.core.plugin.annotation.Injector; import jframe.core.plugin.annotation.Start; import jframe.core.plugin.annotation.Stop; /** * @author dzh * @date Sep 18, 2014 2:17:43 PM * @since 1.0 */ @Injector class MybatisServiceImpl implements MybatisService { static Logger LOG = LoggerFactory.getLogger(MybatisServiceImpl.class); /** * mybatis config */ static String FILE_MYBATIS = "file.mybatis"; @InjectPlugin static MybatisPlugin plugin; private SqlSessionFactory sqlSessionFactory; @Start void start() { File mcFile = new File(plugin.getConfig(FILE_MYBATIS, "")); if (!mcFile.exists()) { LOG.error("Not found mybatis-config, {}" + mcFile.getAbsolutePath()); return; } Reader mybatis = null; try { mybatis = new InputStreamReader(new FileInputStream(mcFile), "utf-8"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(mybatis); } catch (Exception e) { LOG.error(e.getMessage()); } finally { if (mybatis != null) try { mybatis.close(); } catch (IOException e) { } } LOG.info("MybatisServiceImpl start successfully!"); } @Stop void Stop() { sqlSessionFactory = null; LOG.info("MybatisServiceImpl stop successfully!"); } @Override public SqlSessionFactory getSqlSessionFactory() { return sqlSessionFactory; } }