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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 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"> <context:property-placeholder location="classpath*:jdbc.properties" /> <!-- proxool连接池 --> <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"> <property name="driver"> <value>${jdbc.driverClassName}</value> </property> <property name="driverUrl"> <value>${jdbc.url}</value> </property> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="alias" value="Pool_dbname" /> <property name="maximumActiveTime" value="600000" /> <property name="prototypeCount" value="0" /> <property name="maximumConnectionCount" value="50" /> <property name="minimumConnectionCount" value="2" /> <property name="simultaneousBuildThrottle" value="50" /> <property name="houseKeepingTestSql" value="select CURRENT_DATE" /> </bean> <!-- mybatis 配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:${jdbc.configLocation}" /> </bean> <bean id="sqlMapClient" class="com.dc.appengine.oauth.dao.SqlMapClientTemplate"> <property name="sqlSession" ref="sqlSession" /> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> </bean> <!-- 事务管理器 --> <bean id="transactionmanager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 方法事务参数 --> <tx:advice id="serviceAdvice" transaction-manager="transactionmanager"> <tx:attributes> <tx:method name="updateAppScalableStatus" propagation="REQUIRES_NEW" isolation="READ_UNCOMMITTED" rollback-for="Exception" /> <tx:method name="updateDefaultProtocol" propagation="REQUIRES_NEW" isolation="READ_UNCOMMITTED" rollback-for="Exception" /> <tx:method name="saveProtocol" propagation="REQUIRES_NEW" isolation="READ_UNCOMMITTED" rollback-for="Exception" /> <tx:method name="saveNewNode" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="run*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="saveUpgrade" propagation="SUPPORTS" isolation="READ_COMMITTED" rollback-for="Exception" /> <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="start*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="stop*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="destroy*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="deploy*" propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Exception" /> <tx:method name="reapply" propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Exception" /> <tx:method name="redeploy*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="isolate*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="return*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="unisolate*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- 配置切面 --> <aop:config proxy-target-class="true"> <aop:pointcut id="servicePointcut" expression="execution(* com.dc.appengine.oauth.service.impl.*.*(..))" /> <aop:advisor pointcut-ref="servicePointcut" advice-ref="serviceAdvice" /> </aop:config> <context:component-scan base-package="com.dc.appengine.oauth.dao.impl, com.dc.appengine.oauth.service.impl" /> </beans>
jdbc.properties
#oracle
#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:PAAS
#jdbc.username=PAAS
#jdbc.password=PAAS
#jdbc.configLocation=sql-map-oracle-config.xml
#mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/kfpt?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
jdbc.configLocation=sql-map-mysql-config.xml
sql-map-mysql-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "ibatis-3-config.dtd"> <configuration> <settings> <setting name="lazyLoadingEnabled" value="false" /> <setting name="cacheEnabled" value="true"/> </settings> <mappers> <mapper resource="db/mapping/mysql/User.xml"/> <mapper resource="db/mapping/mysql/AppInfo.xml"/> <mapper resource="db/mapping/mysql/Service.xml"/> <mapper resource="db/mapping/mysql/Resource.xml"/> <mapper resource="db/mapping/mysql/Role.xml"/> <mapper resource="db/mapping/mysql/Grant.xml"/> </mappers> </configuration>
config.properties
#jetty port=5022 contextPath=/oauth2 resourceBase=../web descriptor=../web/WEB-INF/web.xml threadPoolSize=10 #接口实现类 IUserImplClass=com.dc.appengine.oauth.interfaces.impl.UserImpl IOAuthImplClass=com.dc.appengine.oauth.interfaces.impl.OAuthImpl #超时时间 code=600 token=3600 #https keystore=oauth-server.keystore KeyPassword=111111 #memcached 配置 cache.open = true cache.servers = 10.126.253.49:11211 cache.pool.size = 10
log4j.properties
log4j.rootLogger=info,console,debug,info,warn,error,fatal log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d [%-5p] (%F.%M:%L) - %m%n log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender log4j.appender.debug.File=./log/oauth/oauth_debug log4j.appender.debug.DatePattern=‘.‘yyyyMMdd‘.log‘ log4j.appender.debug.layout=org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern=%d [%-5p] (%F.%M:%L) - %m%n log4j.appender.debug.filter.F1=org.apache.log4j.varia.LevelRangeFilter log4j.appender.debug.filter.F1.LevelMin=debug log4j.appender.debug.filter.F1.LevelMax=debug log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.File=./log/oauth/oauth_info log4j.appender.info.DatePattern=‘.‘yyyyMMdd‘.log‘ log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=%d [%-5p] (%F.%M:%L) - %m%n log4j.appender.info.filter.F1=org.apache.log4j.varia.LevelRangeFilter log4j.appender.info.filter.F1.LevelMin=info log4j.appender.info.filter.F1.LevelMax=info log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.warn.File=./log/oauth/oauth_warn log4j.appender.warn.DatePattern=‘.‘yyyyMMdd‘.log‘ log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=%d [%-5p] (%F.%M:%L) - %m%n log4j.appender.warn.filter.F1=org.apache.log4j.varia.LevelRangeFilter log4j.appender.warn.filter.F1.LevelMin=warn log4j.appender.warn.filter.F1.LevelMax=warn log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.File=./log/oauth/oauth_error log4j.appender.error.DatePattern=‘.‘yyyyMMdd‘.log‘ log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=%d [%-5p] (%F.%M:%L) - %m%n log4j.appender.error.filter.F1=org.apache.log4j.varia.LevelRangeFilter log4j.appender.error.filter.F1.LevelMin=error log4j.appender.error.filter.F1.LevelMax=error log4j.appender.fatal=org.apache.log4j.DailyRollingFileAppender log4j.appender.fatal.File=./log/oauth/oauth_fatal log4j.appender.fatal.DatePattern=‘.‘yyyyMMdd‘.log‘ log4j.appender.fatal.layout=org.apache.log4j.PatternLayout log4j.appender.fatal.layout.ConversionPattern=%d [%-5p] (%F.%M:%L) - %m%n log4j.appender.fatal.filter.F1=org.apache.log4j.varia.LevelRangeFilter log4j.appender.fatal.filter.F1.LevelMin=fatal log4j.appender.fatal.filter.F1.LevelMax=fatal #log4j.logger.com.dc.oauth.server=debug #----------------------------------------------------Ibaits---------------------------------------------------- #log4j.logger.com.ibatis=debug #log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug #log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug #log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug #log4j.logger.java.sql.Connection=debug #log4j.logger.java.sql.Statement=debug #log4j.logger.java.sql.PreparedStatement=debug,stdout #log4j.appender.stdout=org.apache.log4j.ConsoleAppender #log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n #log4j.appender.stdout=org.apache.log4j.ConsoleAppender #log4j.appender.stdout.Target=System.out #log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601}[%-5p][%c][%t]:%m%n
appinfo.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "ibatis-3-mapper.dtd"> <mapper namespace="AppInfo"> <cache eviction="LRU" type="com.dc.appengine.oauth.cache.MemcacheCacheHelper4Mybatis" /> <select id="findByAppKey" parameterType="java.lang.String" resultType="java.util.HashMap"> select * from appinfo where appkey = #{appKey} </select> <select id="findBySecondDomain" parameterType="java.lang.String" resultType="java.util.HashMap"> select * from appinfo where second_domain = #{secondDomain} </select> <select id="findByAppId" parameterType="java.lang.String" resultType="java.util.HashMap"> select * from appinfo where appid = #{appId} </select> </mapper>
MemcacheCacheHelper4Mybatis.java
/** * */ package com.dc.appengine.oauth.cache; import java.util.LinkedList; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import org.apache.ibatis.cache.Cache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.dc.appengine.oauth.util.ConfigUtil; /** * @author Administrator *2014-10-20 */ public class MemcacheCacheHelper4Mybatis implements Cache{ private static Logger LOG = LoggerFactory.getLogger( MemcacheCacheHelper4Mybatis.class ); private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock(); private String id; private LinkedList<String> cacheKeys = new LinkedList<String>(); private MemcachedManager cache; private boolean openCache = Boolean.valueOf(ConfigUtil.getInstance().getProperty("cache.open")); public MemcacheCacheHelper4Mybatis( String id ){ this.id = id; this.cache = MemcachedManager.getInstance(); } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#clear() */ @Override public void clear() { if( openCache ){ if( cacheKeys != null && cacheKeys.size() > 0 ){ for( String key : cacheKeys ){ try { cache.getClient().delete( key ); } catch ( Exception e ) { e.printStackTrace(); LOG.error( "delete " + key + " error! ", e ); } } cacheKeys.clear(); LOG.debug("clear"); } } } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#getId() */ @Override public String getId() { LOG.debug("getId:" + this.id); return this.id; } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#getObject(java.lang.Object) */ @Override public Object getObject( Object key ) { if( this.openCache ){ String cacheKey = String.valueOf(key.hashCode()); try { Object obj = cache.getClient().get( cacheKey ); if( obj != null && !cacheKeys.contains( cacheKey ) ){ cacheKeys.add( cacheKey ); } else if( obj == null && cacheKeys.contains( cacheKey ) ){ cacheKeys.remove( cacheKey ); } LOG.debug("getObject:" + obj); return obj; } catch ( Exception e ) { e.printStackTrace(); LOG.error( "get " + key.toString() + " error!", e ); } } return null; } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#getReadWriteLock() */ @Override public ReadWriteLock getReadWriteLock() { LOG.debug("getReadWriteLock"); return this.readWriteLock; } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#getSize() */ @Override public int getSize() { LOG.debug("getSize:" + cacheKeys.size()); return cacheKeys.size(); } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#putObject(java.lang.Object, java.lang.Object) */ @Override public void putObject(Object key, Object value) { if( this.openCache ){ if( value != null && !"SERIALIZABLE_NULL_OBJECT".equals( value ) ){ String cacheKey = String.valueOf(key.hashCode()); cacheKeys.add( cacheKey ); try { cache.getClient().set( cacheKey, 0, value ); LOG.debug("set " + key + "=" + value); } catch ( Exception e ) { e.printStackTrace(); LOG.error( "set " + cacheKey + " error!", e ); } } } } /* (non-Javadoc) * @see org.apache.ibatis.cache.Cache#removeObject(java.lang.Object) */ @Override public Object removeObject(Object key) { if( this.openCache ){ String cacheKey = String.valueOf(key.hashCode()); try { Object obj = cache.getClient().delete( cacheKey ); cacheKeys.remove( cacheKey ); LOG.debug("remove " + cacheKey); return obj; } catch ( Exception e ) { e.printStackTrace(); LOG.error( "delete " + cacheKey + " error!", e); } } return null; } }
MemcachedManager.java
/** * */ package com.dc.appengine.oauth.cache; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.dc.appengine.oauth.util.ConfigUtil; import net.rubyeye.xmemcached.MemcachedClient; import net.rubyeye.xmemcached.MemcachedClientBuilder; import net.rubyeye.xmemcached.XMemcachedClientBuilder; import net.rubyeye.xmemcached.command.BinaryCommandFactory; import net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator; import net.rubyeye.xmemcached.utils.AddrUtil; /** * @author Administrator *2014-10-8 */ public class MemcachedManager { private final Logger logger = LoggerFactory.getLogger( MemcachedManager.class ); private String servers; private int poolSize; private boolean openCache = false; private MemcachedClient client; private static MemcachedManager instance; public static MemcachedManager getInstance(){ if( instance == null ){ synchronized( MemcachedManager.class ){ if( instance == null ){ instance = new MemcachedManager(); } } } return instance; } private MemcachedManager(){ try { init(); } catch (IOException e) { logger.error( "cache manager init failed!", e ); } } public MemcachedClient getClient(){ return client; } private void init() throws IOException{ // openCache = Boolean.parseBoolean( ConfigHelper.getValue("cache.open") ); openCache = Boolean.parseBoolean(ConfigUtil.getInstance().getProperty("cache.open")); if( openCache ){ // servers = ConfigHelper.getValue("cache.servers"); servers = ConfigUtil.getInstance().getProperty("cache.servers"); // poolSize = Integer.parseInt( ConfigHelper.getValue("cache.pool.size") ); poolSize = Integer.parseInt(ConfigUtil.getInstance().getProperty("cache.pool.size")); MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses( servers ) ); builder.setCommandFactory( new BinaryCommandFactory() ); builder.setConnectionPoolSize( poolSize ); builder.setSessionLocator( new KetamaMemcachedSessionLocator() ); client = builder.build(); } } public void closePool() throws IOException { client.shutdown(); client = null; logger.info("Ibatis memcached pool closed"); } }
SqlMapClientDaoSupport.java
/** * */ package com.dc.appengine.oauth.dao; import com.ibatis.sqlmap.client.SqlMapClient; /** * @author Administrator *2014-10-17 */ public class SqlMapClientDaoSupport { private SqlMapClient sqlMapClient; public SqlMapClientTemplate getSqlMapClientTemplate() { return (SqlMapClientTemplate) sqlMapClient; } public void setSqlMapClient(SqlMapClient sqlMapClient) { this.sqlMapClient = sqlMapClient; } }
SqlMapClientTemplate.java
/** * */ package com.dc.appengine.oauth.dao; import java.sql.Connection; import java.sql.SQLException; import java.util.List; import java.util.Map; import javax.sql.DataSource; import org.apache.ibatis.executor.BatchResult; import org.apache.ibatis.session.RowBounds; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.support.SqlSessionDaoSupport; import com.ibatis.common.util.PaginatedList; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapSession; import com.ibatis.sqlmap.client.event.RowHandler; /** * @author Administrator *2014-10-17 */ @SuppressWarnings("deprecation") public class SqlMapClientTemplate extends SqlSessionDaoSupport implements SqlMapClient{ private SqlSessionTemplate sqlSession; public void setSqlSession(SqlSessionTemplate sqlSession) { this.sqlSession = sqlSession; super.setSqlSessionTemplate( sqlSession ); } public SqlSessionTemplate getSqlSession() { return sqlSession; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapClient#flushDataCache() */ @Override public void flushDataCache() { super.getSqlSession().clearCache(); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapClient#flushDataCache(java.lang.String) */ @Override public void flushDataCache(String arg0) { } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapClient#getSession() */ @Override public SqlMapSession getSession() { return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapClient#openSession() */ @Override public SqlMapSession openSession() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapClient#openSession(java.sql.Connection) */ @Override public SqlMapSession openSession(Connection arg0) { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#delete(java.lang.String) */ @Override public int delete(String arg0) { return super.getSqlSession().delete(arg0); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#delete(java.lang.String, java.lang.Object) */ @Override public int delete(String arg0, Object arg1) { // TODO Auto-generated method stub return super.getSqlSession().delete(arg0, arg1); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#executeBatch() */ @Override public int executeBatch() throws SQLException { // TODO Auto-generated method stub List<BatchResult> list = super.getSqlSession().flushStatements(); int i = 0; for( BatchResult br : list ){ int[] counts = br.getUpdateCounts(); for( int count : counts ){ i += count; } } return i; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#executeBatchDetailed() */ @Override public List executeBatchDetailed() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#insert(java.lang.String) */ @Override public Object insert(String statement) { return super.getSqlSession().insert( statement ); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#insert(java.lang.String, java.lang.Object) */ @Override public Object insert(String statement, Object object) { return super.getSqlSession().insert( statement, object ); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForList(java.lang.String) */ @Override public List queryForList(String arg0) { // TODO Auto-generated method stub return super.getSqlSession().selectList(arg0); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForList(java.lang.String, java.lang.Object) */ @Override public List queryForList(String statement, Object object){ return super.getSqlSession().selectList( statement, object ); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForList(java.lang.String, int, int) */ @Override public List queryForList(String arg0, int arg1, int arg2) throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForList(java.lang.String, java.lang.Object, int, int) */ @Override public List queryForList(String arg0, Object arg1, int arg2, int arg3) { // TODO Auto-generated method stub RowBounds rb = new RowBounds( arg2, arg3); return super.getSqlSession().selectList(arg0, arg1, rb); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForMap(java.lang.String, java.lang.Object, java.lang.String) */ @Override public Map queryForMap(String arg0, Object arg1, String arg2) throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForMap(java.lang.String, java.lang.Object, java.lang.String, java.lang.String) */ @Override public Map queryForMap(String arg0, Object arg1, String arg2, String arg3) throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForObject(java.lang.String) */ @Override public Object queryForObject(String arg0) { // TODO Auto-generated method stub return super.getSqlSession().selectOne(arg0); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForObject(java.lang.String, java.lang.Object) */ @Override public Object queryForObject(String arg0, Object arg1) { // TODO Auto-generated method stub return super.getSqlSession().selectOne(arg0, arg1); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForObject(java.lang.String, java.lang.Object, java.lang.Object) */ @Override public Object queryForObject(String arg0, Object arg1, Object arg2) throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForPaginatedList(java.lang.String, int) */ @SuppressWarnings("deprecation") @Override public PaginatedList queryForPaginatedList(String arg0, int arg1) throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryForPaginatedList(java.lang.String, java.lang.Object, int) */ @SuppressWarnings("deprecation") @Override public PaginatedList queryForPaginatedList(String arg0, Object arg1, int arg2) throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#startBatch() */ @Override public void startBatch() throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#update(java.lang.String) */ @Override public int update(String arg0) throws SQLException { // TODO Auto-generated method stub return super.getSqlSession().update(arg0); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#update(java.lang.String, java.lang.Object) */ @Override public int update(String arg0, Object arg1) { // TODO Auto-generated method stub return super.getSqlSession().update(arg0, arg1); } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#commitTransaction() */ @Override public void commitTransaction() throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#endTransaction() */ @Override public void endTransaction() throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#getCurrentConnection() */ @Override public Connection getCurrentConnection() throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#getDataSource() */ @Override public DataSource getDataSource() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#getUserConnection() */ @Override public Connection getUserConnection() throws SQLException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#setUserConnection(java.sql.Connection) */ @Override public void setUserConnection(Connection arg0) throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#startTransaction() */ @Override public void startTransaction() throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapTransactionManager#startTransaction(int) */ @Override public void startTransaction(int arg0) throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryWithRowHandler(java.lang.String, com.ibatis.sqlmap.client.event.RowHandler) */ @Override public void queryWithRowHandler(String arg0, RowHandler arg1) throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.ibatis.sqlmap.client.SqlMapExecutor#queryWithRowHandler(java.lang.String, java.lang.Object, com.ibatis.sqlmap.client.event.RowHandler) */ @Override public void queryWithRowHandler(String arg0, Object arg1, RowHandler arg2) throws SQLException { // TODO Auto-generated method stub } }
AppInfoDAO.java
package com.dc.appengine.oauth.dao.impl; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import com.dc.appengine.oauth.dao.SqlMapClientDaoSupport; import com.ibatis.sqlmap.client.SqlMapClient; @Component("AppInfoDAO") public class AppInfoDAO extends SqlMapClientDaoSupport { @Autowired public AppInfoDAO(@Qualifier("sqlMapClient") SqlMapClient sqlMapClient) { super(); super.setSqlMapClient(sqlMapClient); } @SuppressWarnings("unchecked") public Map<String, Object> findByAppKey(String appKey) { Object result = getSqlMapClientTemplate().queryForObject("AppInfo.findByAppKey", appKey); if (result == null) { return null; } else { return (Map<String, Object>) result; } } @SuppressWarnings("unchecked") public Map<String, Object> findBySecondDomain(String secondDomain) { Object result = getSqlMapClientTemplate().queryForObject("AppInfo.findBySecondDomain", secondDomain); if (result == null) { return null; } else { return (Map<String, Object>) result; } } @SuppressWarnings("unchecked") public Map<String, Object> findByAppId(String appId) { Object result = getSqlMapClientTemplate().queryForObject("AppInfo.findByAppId", appId); if (result == null) { return null; } else { return (Map<String, Object>) result; } } }
AppInfoService.java
package com.dc.appengine.oauth.service.impl; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import com.dc.appengine.oauth.dao.impl.AppInfoDAO; @Service("AppInfoService") public class AppInfoService { @Autowired @Qualifier("AppInfoDAO") private AppInfoDAO appInfoDAO; public Map<String, Object> findBySecondDomain(String secondDomain) { return appInfoDAO.findBySecondDomain(secondDomain); } public Map<String, Object> findByAppKey(String appKey) { return appInfoDAO.findByAppKey(appKey); } public Map<String, Object> findByAppId(String appId) { return appInfoDAO.findByAppId(appId); } public boolean hasApp(String appKey) { Map<String, Object> appInfo = findByAppKey(appKey); if (appInfo == null) { return false; } else { return true; } } public boolean checkApp(String appKey, String appSecret) { Map<String, Object> appInfo = findByAppKey(appKey); if (appInfo == null) { return false; } else { String secret = (String) appInfo.get("appSecretKey"); if (appSecret != null && appSecret.equals(secret)) { return true; } else { return false; } } } }
时间: 2024-10-27 04:49:59