´«ÖDz¥¿Íjavaѧϰ OA»ú¹¹Éè¼Æ
½ñÌìÊÇѧϰoaµÄµÚ¶þÌ죬ѧµÄ֪ʶµã±È½Ï¶à£¬ÎÒ×öÁ˱ʼǣº
Service²ãÉè¼Æ£º
1£¬ÏÈÓÐget(Long)£¬ÒòΪ»¹ÏëÒª»ñÈ¡ÆäËû¶ÔÏ󣨲»ÊÇT£©£¬ËùÒÔÔÙ¶¨ÒåÒ»¸öget(Class, Long)
2£¬ ΪʲôÓÐget(Class, Long)£¬µ«²»¼ÓÉÏÒÔÏÂÁ½¸ö·½·¨ÄØ£¿
<E> E delete(Class<E> clazz, Long id);
<E> List<E> findAll(Class<E> clazz);
¿ÉÒÔ¼ÓÉÏ£¬µ«ÊÇÔÚ³ÌÐòÖÐֻʹÓõ½ÁËget(Class, Long)£¬ËùÒÔ¾ÍÖ»¶¨ÒåÁËget·½·¨¡£
3£¬ÎªÊ²Ã´Ê¹ÓÃLongÐ͵ÄÖ÷¼üÄØ£¿Ò²¿ÉÒÔʹÓÃSerializableÀàÐÍ£¬ÒòΪSession.get()·½·¨¾ÍÊǽÓÊÜÕâ¸öÀàÐÍ¡£
°ü ×ÊÔ´£¨Àà¡¢½Ó¿ÚµÈ£©
cn.itcast.oa.service.daosupport ServiceBase£¨ÔÃûΪDaoBase£©
ServiceImplBase£¨ÔÃûΪDaoBaseImpl£©
cn.itcast.oa.service ServiceµÄ½Ó¿Ú
Cn.itcast.oa.service.impl ServiceµÄʵÏÖÀà
˵Ã÷£º Service½Ó¿Ú¿ÉÒÔͨ¹ý¼Ì³ÐServiceBaseµÃµ½Ôöɾ¸Ä²éµÄ·½·¨ÉùÃ÷¡£ServiceµÄʵÏÖÀà¿ÉÒÔͨ¹ý¼Ì³ÐServiceImplBaseµÃµ½Ôöɾ¸Ä²é·½·¨µÄʵÏÖ¡£Í¨¹ýServiceImplBaseÖеÄgetSession()ÓëgetJbpmContext()·½·¨¿ÉÒÔ·½±ãµÄ»ñµÃSessionÓëJbpmContext¡£
ʹÓ÷´Éä»ñÈ¡ÀàÐͲÎÊýµÄÕæÊµÀàÐ͵ĴúÂëÈçÏ£º
public DaoBaseImpl () {
Type type = this.getClass().getGenericSuperclass();
ParameterizedType pt = (ParameterizedType) type;
this.clazz = (Class<T>) pt.getActualTypeArguments()[0];
}
ÊÂÎñ¹ÜÀí£º
ʹÓùýÂËÆ÷¼Ó ThreadLocal ʵÏÖ
ÒòΪSession¿ÉÒÔͨ¹ýJbpmContext.getSession()»ñµÃ£¬ËùÒÔÖ»Ðè¹ÜÀí JbpmContext¼´¿É£»¹ýÂËÆ÷À¹½Ø*.doµÄÇëÇó¡£
Ò»¸öÇëÇó£¨Ị̈߳©Ê¹ÓÃͬһ¸öJbpmContext Èç¹ûÇëÇóÖÐûÓÐʹÓÃJbpmContext»òSession£¬¾Í²»Òª´´½¨JbpmContext¡£
ÔÚ¹ýÂËÆ÷ÖйرÕJbpmContextʱ£¬Ò²Òªµ÷Óà ThreadLocal.remove()£¬ÒòΪWebÈÝÆ÷ÓÐÏ̳߳أ¬¾ÍÊÇÁ½´ÎÇëÇóÓпÉÄÜÊÇʹÓõÄͬһ¸öÏ̡߳£
JbpmContextFilterÖеÄÏà¹Ø´úÂ룺
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException {
try {
chain.doFilter(request, respons
Ïà¹ØÎĵµ£º
/**
* ### Õæ難µÄ題Ä¿: ¹·Æ¨ÑÝËã·¨ (測資ºÜ機車)
* 測驗結¹û: x.xx0 ms
* 測驗ÈÕÆÚ: 200y-mm-dd
* @author Raymond Wu (Сè°Íè)
*/
public class Main {
// 輸Èë緩衝區 (緩衝¿Õ ......
(×¢Ò⣺ÏÂÃæÎļþ¶¼ÔÚf:\myjavaÖУ©
{
3¸öÔ´Îļþ£ºMyApp.java,MyLib.java,PrintSchool.java;
½¨Îļþ¼Ðorg\Jie
ÆäÖÐMyLibºÍPrintSchool·ÅÔÚ°üorg.JieÖУ¨import org.Jie)
ÔÚcmd.exeÖÐÔËÐÐ
javac -d org\Jie MyLib.java //ÔÚorg\Jie\org\jieÉú³ÉÁËMyLib.classÎļþ£¬½«¸ÃÎļþ ......
ÎÒ½ñÌìԤϰÁ˹¤×÷Á÷µÄ֪ʶ£¬ÎÒ×öÁ˼òµ¥µÄ±Ê¼Ç£º
¹¤×÷Á÷£¨Workflow£©
¹¤×÷Á÷¾ÍÊǹ¤×÷Á÷³ÌµÄ¼ÆËã»ú»¯£¬¼´½«¹¤×÷Á÷³ÌÖеŤ×÷ÈçºÎǰºó×éÖ¯ÔÚÒ»ÆðµÄ
Âß¼ºÍ¹æÔòÔÚ¼ÆËã»úÖÐÒÔÇ¡µ±µÄÄ£ÐͽøÐбíʾ²¢¶ÔÆäʵʩ¼ÆËã¡£
¹¤×÷Á÷Òª½â¾öµÄÖ÷ÒªÎÊÌâÊÇ£ºÎªÊµÏÖij¸öÒµÎñÄ¿±ê£¬ÔÚ¶à¸ö²ÎÓëÕßÖ®¼ä£¬ÀûÓüÆ
Ëã»ú£¬°´Ä³ÖÖÔ¤¶¨¹æÔò×Ô¶¯´«µÝÎÄ ......
1.´´½¨Ïß³Ì
·½Ê½Ò»£ºÍ¨¹ýThreadµÄ×ÓÀà´´½¨£¬´ËʱÐèÒªÔÚThreadÀàµÄ×ÓÀàÖÐÖØÐ´¸¸ÀàµÄpublic void run()·½·¨
·½Ê½¶þ£ºÖ±½ÓʹÓÃThreadÀà´´½¨
  ......
ÎÒ½ñÌìѧϰÁËjbpmµÄ֪ʶ£ºÎÒ×öÁ˼òµ¥µÄÕªÒª£º
Á÷³ÌͼÖеĸ÷ÖÖ½ÚµãµÄ×÷Óü°Ó÷¨£º
ÐèÒªÓв»Í¬ÀàÐÍ£¨×÷Ó㩵Ľڵ㣬²ÅÄÜÉè¼Æ³ö¸´ÔÓµÄÁ÷³Ìͼ¡£JbpmÓÐÒ»Ì×Ô¤Ïȶ¨ÒåºÃµÄ½ÚµãÀàÐÍ¡£Èç¹û²»¹»Óã¬Ò²¿ÉÒÔʹÓÃ×Ô¶¨Òå½Úµã½øÐÐÀ©Õ¹£¬ÒÔÍê³É²»Í¬µÄÁ÷³ÌµÄÐèÒª¡£²»Í¬µÄ½ÚµãÀàÐÍ´ú±í²»Í¬µÄÐÐΪ¡£
ÿ¸öÁ÷³Ì¶¼±ØÐëÒªÓп ......