工作流Activiti的学习总结(十)Activiti手动执行的应用(UserTask)

工作流模拟某公司请假流程情景如下:
   1.开发人员请假流程,如果开发人员请假,如果请假天数小于3天,组长批准,人事批准即可请假。
   2.如果请假大约三天,需要项目经理或者产品经理批准,并且项目总监批准

 

流程图:

 

 

流程配置:

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">  
  3.   <process id="UserExecuteTask" name="UserExecuteTask">  
  4.     <startEvent id="startevent1" name="Start"></startEvent>  
  5.     <parallelGateway id="parallelgateway1" name="多种请假方式"></parallelGateway>  
  6.     <userTask id="servicetask1" name="项目经理同意" >  
  7.        <extensionElements>  
  8.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.DeveloperManagerUserTaskListener"/>  
  9.        </extensionElements>  
  10.     </userTask>  
  11.     <userTask id="servicetask2" name="产品经理同意">  
  12.        <extensionElements>  
  13.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.ProductManagerUserTaskListener"/>  
  14.        </extensionElements>  
  15.     </userTask>  
  16.     <userTask id="servicetask3" name="项目组长同意" >  
  17.           <extensionElements>  
  18.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.TeamLeaderUserTaskListener"/>  
  19.        </extensionElements>  
  20.     </userTask>  
  21.     <parallelGateway id="parallelgateway2" name="First Join"></parallelGateway>  
  22.     <userTask id="servicetask4" name="项目总监同意" >  
  23.        <extensionElements>  
  24.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.ProductBossUserTaskListener"/>  
  25.        </extensionElements>  
  26.     </userTask>  
  27.     <parallelGateway id="parallelgateway3" name="人事判断"></parallelGateway>  
  28.     <userTask id="servicetask5" name="人事部门同意" >  
  29.         <extensionElements>  
  30.            <activiti:taskListener event="complete"  class="com.easyway.workflow.activiti.gateway.HumanResouceUserTaskListener"/>  
  31.         </extensionElements>  
  32.     </userTask>  
  33.     <endEvent id="endevent1" name="End"></endEvent>  
  34.     <sequenceFlow id="flow1" name="" sourceRef="startevent1" targetRef="parallelgateway1"></sequenceFlow>  
  35.     <sequenceFlow id="flow2" name="" sourceRef="parallelgateway1" targetRef="servicetask1"></sequenceFlow>  
  36.     <sequenceFlow id="flow3" name="" sourceRef="parallelgateway1" targetRef="servicetask2"></sequenceFlow>  
  37.     <sequenceFlow id="flow4" name="" sourceRef="parallelgateway1" targetRef="servicetask3"></sequenceFlow>  
  38.     <sequenceFlow id="flow5" name="" sourceRef="servicetask1" targetRef="parallelgateway2"></sequenceFlow>  
  39.     <sequenceFlow id="flow6" name="" sourceRef="servicetask2" targetRef="parallelgateway2"></sequenceFlow>  
  40.     <sequenceFlow id="flow7" name="" sourceRef="servicetask3" targetRef="parallelgateway3"></sequenceFlow>  
  41.     <sequenceFlow id="flow8" name="" sourceRef="parallelgateway2" targetRef="servicetask4"></sequenceFlow>  
  42.     <sequenceFlow id="flow9" name="" sourceRef="servicetask4" targetRef="parallelgateway3"></sequenceFlow>  
  43.     <sequenceFlow id="flow10" name="" sourceRef="parallelgateway3" targetRef="servicetask5"></sequenceFlow>  
  44.     <sequenceFlow id="flow11" name="" sourceRef="servicetask5" targetRef="endevent1"></sequenceFlow>  
  45.   </process>  
  46. </definitions>  

 

流程实现:

 

Java代码   收藏代码
  1. package com.easyway.workflow.activiti.gateway;  
  2.   
  3.   
  4. import java.util.logging.Logger;  
  5. /** 
  6.  * execute方法的参数DelegateExecution execution可以在流程中各个结点之间传递流程变量。  
  7.  * <activiti:taskListener>元素的event属性,它一共包含三种事件:"create"、"assignment"、"complete",分别表示结点执行处理逻辑的时机为:在处理类实例化时、在结点处理逻辑被指派时、在结点处理逻辑执行完成时,可以根据自己的需要进行指定。  
  8.   *上述流程定义中,4个任务结点对应的处理类 
  9.   * 
  10.   *<activiti:taskListener>元素的event属性,它一共包含三种事件:"create"、"assignment"、"complete",分别表示结点执行处理逻辑的时机为:在处理类实例化时、在结点处理逻辑被指派时、在结点处理逻辑执行完成时,可以根据自己的需要进行指定。  
  11.   * 
  12.  *<userTask id="servicetask2" name="产品经理同意"> 
  13.        <extensionElements> 
  14.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.ProductManagerUserTaskListener"/> 
  15.        </extensionElements> 
  16.     </userTask> 
  17.  * 
  18.  * 
  19.  * 项目经理审批过程 
  20.  * @author longgangbai 
  21.  *  
  22.  *  
  23.  * 2011-12-17  下午07:45:47 
  24.  */  
  25. public class DeveloperManagerUserTaskListener implements TaskListener   
  26. {  
  27.   
  28.     private final Logger log = Logger.getLogger(DeveloperManagerUserTaskListener.class.getName());  
  29.   
  30.   
  31.     /* (non-Javadoc) 
  32.      * @see org.activiti.engine.delegate.TaskListener#notify(org.activiti.engine.delegate.DelegateTask) 
  33.      */  
  34.     @Override  
  35.     public void notify(DelegateTask delegateTask) {  
  36.         try {  
  37.             Thread.sleep(10000);  
  38.         } catch (InterruptedException e) {  
  39.             // TODO Auto-generated catch block  
  40.             e.printStackTrace();  
  41.         }  
  42.         log.info("variavles=" + delegateTask.getVariables());  
  43.         delegateTask.setVariable("项目经理""请假天数大约3天,同意请假。");  
  44.         log.info("项目经理,请假天数大约3天,同意请假。.");  
  45.           
  46.     }  
  47. }  

 

Java代码   收藏代码
  1. package com.easyway.workflow.activiti.gateway;  
  2.   
  3.   
  4. import java.util.logging.Logger;  
  5. /** 
  6.   * execute方法的参数DelegateExecution execution可以在流程中各个结点之间传递流程变量。  
  7.  * 
  8.  *<activiti:taskListener>元素的event属性,它一共包含三种事件:"create"、"assignment"、"complete",分别表示结点执行处理逻辑的时机为:在处理类实例化时、在结点处理逻辑被指派时、在结点处理逻辑执行完成时,可以根据自己的需要进行指定。  
  9.  
  10.  *    <userTask id="servicetask5" name="人事部门同意" > 
  11.         <extensionElements> 
  12.            <activiti:taskListener event="complete"  class="com.easyway.workflow.activiti.gateway.HumanResouceUserTaskListener"/> 
  13.         </extensionElements> 
  14.     </userTask> 
  15.      
  16.  * 人事部门审批过程 
  17.  * @author longgangbai 
  18.  *  
  19.  * 2011-12-17  下午07:45:47 
  20.  */  
  21. public class HumanResouceUserTaskListener implements TaskListener {  
  22.   
  23.     private final Logger log = Logger.getLogger(HumanResouceUserTaskListener.class.getName());  
  24.   
  25.   
  26.     /* (non-Javadoc) 
  27.      * @see org.activiti.engine.delegate.TaskListener#notify(org.activiti.engine.delegate.DelegateTask) 
  28.      */  
  29.     @Override  
  30.     public void notify(DelegateTask delegateTask) {  
  31.         try {  
  32.             Thread.sleep(10000);  
  33.         } catch (InterruptedException e) {  
  34.             // TODO Auto-generated catch block  
  35.             e.printStackTrace();  
  36.         }  
  37.         log.info("variavles=" + delegateTask.getVariables());  
  38.         delegateTask.setVariable("人事部门""请假天数大约3天,同意请假。");  
  39.         log.info("人事部门 ,请假天数大约3天,同意请假。");  
  40.           
  41.     }  
  42. }  

 

 

Java代码   收藏代码
  1. package com.easyway.workflow.activiti.gateway;  
  2.   
  3.   
  4. import java.util.logging.Logger;  
  5. /** 
  6.  *  execute方法的参数DelegateExecution execution可以在流程中各个结点之间传递流程变量。  
  7.  *   
  8.  *  <activiti:taskListener>元素的event属性,它一共包含三种事件:"create"、"assignment"、"complete",分别表示结点执行处理逻辑的时机为:在处理类实例化时、在结点处理逻辑被指派时、在结点处理逻辑执行完成时,可以根据自己的需要进行指定。  
  9.  
  10.  *  配置如下   
  11.  *    <userTask id="servicetask4" name="项目总监同意" > 
  12.        <extensionElements> 
  13.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.ProductBossUserTaskListener"/> 
  14.        </extensionElements> 
  15.     </userTask> 
  16.  * 
  17.  * 
  18.  * 项目总监审批过程 
  19.  * @author longgangbai 
  20.  *  
  21.  * 2011-12-17  下午07:45:47 
  22.  */  
  23. public class ProductBossUserTaskListener implements TaskListener {  
  24.   
  25.     private final Logger log = Logger.getLogger(ProductBossUserTaskListener.class.getName());  
  26.   
  27.   
  28.     /* (non-Javadoc) 
  29.      * @see org.activiti.engine.delegate.TaskListener#notify(org.activiti.engine.delegate.DelegateTask) 
  30.      */  
  31.     @Override  
  32.     public void notify(DelegateTask execution) {  
  33.         try {  
  34.             Thread.sleep(10000);  
  35.         } catch (InterruptedException e) {  
  36.             // TODO Auto-generated catch block  
  37.             e.printStackTrace();  
  38.         }  
  39.         log.info("variavles=" + execution.getVariables());  
  40.         execution.setVariable("项目总监""请假天数大约3天,同意请假。");  
  41.         log.info("项目总监,请假天数大约3天,同意请假。");          
  42.           
  43.     }  
  44. }  

 

Java代码   收藏代码
  1. package com.easyway.workflow.activiti.gateway;  
  2.   
  3.   
  4. import java.util.logging.Logger;  
  5. /** 
  6.   * execute方法的参数DelegateExecution execution可以在流程中各个结点之间传递流程变量。 
  7.   *  
  8.   * <activiti:taskListener>元素的event属性,它一共包含三种事件:"create"、"assignment"、"complete",分别表示结点执行处理逻辑的时机为:在处理类实例化时、在结点处理逻辑被指派时、在结点处理逻辑执行完成时,可以根据自己的需要进行指定。  
  9.  
  10.   *  
  11.   * 配置如下  
  12.  *    <userTask id="servicetask1" name="项目经理同意" > 
  13.        <extensionElements> 
  14.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.DeveloperManagerUserTaskListener"/> 
  15.        </extensionElements> 
  16.     </userTask> 
  17.  * 产品经理审批过程 
  18.  * @author longgangbai 
  19.  *  
  20.  * 2011-12-17  下午07:45:47 
  21.  */  
  22. public class ProductManagerUserTaskListener implements TaskListener {  
  23.   
  24.     private final Logger log = Logger.getLogger(ProductManagerUserTaskListener.class.getName());  
  25.   
  26.   
  27.     /* (non-Javadoc) 
  28.      * @see org.activiti.engine.delegate.TaskListener#notify(org.activiti.engine.delegate.DelegateTask) 
  29.      */  
  30.     @Override  
  31.     public void notify(DelegateTask execution) {  
  32.         try {  
  33.             Thread.sleep(10000);  
  34.         } catch (InterruptedException e) {  
  35.             // TODO Auto-generated catch block  
  36.             e.printStackTrace();  
  37.         }  
  38.         log.info("variavles=" + execution.getVariables());  
  39.         execution.setVariable("产品经理""请假天数大约3天,同意请假。");  
  40.         log.info("产品经理,请假天数大约3天,同意请假。");      
  41.           
  42.     }  
  43. }  

 

 

Java代码   收藏代码
  1. package com.easyway.workflow.activiti.gateway;  
  2.   
  3.   
  4. import java.util.logging.Logger;  
  5. /** 
  6.  *  
  7.  *  
  8.  * <activiti:taskListener>元素的event属性,它一共包含三种事件:"create"、"assignment"、"complete",分别表示结点执行处理逻辑的时机为:在处理类实例化时、在结点处理逻辑被指派时、在结点处理逻辑执行完成时,可以根据自己的需要进行指定。  
  9.  *  
  10.  *  
  11.  * 配置如下: 
  12.  *     <userTask id="servicetask3" name="项目组长同意" > 
  13.           <extensionElements> 
  14.           <activiti:taskListener event="complete" class="com.easyway.workflow.activiti.gateway.TeamLeaderUserTaskListener"/> 
  15.        </extensionElements> 
  16.     </userTask> 
  17.      
  18.  * 项目组长批准请假 
  19.  *    模拟当开发人员请假小于3天,组长比准 
  20.  * @author longgangbai 
  21.  *  
  22.  * 2011-12-17  上午09:07:37 
  23.  */  
  24. public class TeamLeaderUserTaskListener implements TaskListener {  
  25.   
  26.     private final Logger log = Logger.getLogger(TeamLeaderUserTaskListener.class.getName());  
  27.   
  28.   
  29.     /* (non-Javadoc) 
  30.      * @see org.activiti.engine.delegate.TaskListener#notify(org.activiti.engine.delegate.DelegateTask) 
  31.      */  
  32.     @Override  
  33.     public void notify(DelegateTask execution) {  
  34.         try {  
  35.             Thread.sleep(10000);  
  36.         } catch (InterruptedException e) {  
  37.             // TODO Auto-generated catch block  
  38.             e.printStackTrace();  
  39.         }  
  40.         log.info("variavles=" + execution.getVariables());  
  41.         execution.setVariable("项目组长""请假天数小于3天,同意请假。");  
  42.         log.info("项目组长,请假天数小于3天,同意请假。");  
  43.     }  
  44. }  

 

Java代码   收藏代码
  1. package com.easyway.workflow.activiti.gateway;  
  2.   
  3.   
  4. import junit.framework.TestCase;  
  5. /** 
  6.  * 主要是在测试之前做一些初始化工作,主要包括流程引擎实例 
  7.  * 的构建,及其流程提供的基本服务。 
  8.  * 目的:让开发者熟悉工作流使用过程使用的几个步骤 
  9.  * 1.加载相关的工作流全局配置文件activiti.cfg.xml配置文件信息 
  10.  * 2.获取工作流相关的服务(RepositoryService,RuntimeService, 
  11.  *    TaskService,HistoryService,FormService,ManagementService, 
  12.  *    IdentityService等) 
  13.  * 2.加载工作流文件*.bpmn20.xml信息 
  14.  *  
  15.  * 3.部署工作流 
  16.  *    部署工作流由多种方式,在以后会相继讲解 
  17.  *  
  18.  * @author longgangbai 
  19.  *  
  20.  * 2011-12-17  下午07:48:59 
  21.  */  
  22. public abstract class AbstractTest extends TestCase {  
  23.   
  24.     private ProcessEngine processEngine;  
  25.     protected String deploymentId;  
  26.     protected RepositoryService repositoryService;  
  27.     protected RuntimeService runtimeService;  
  28.     protected TaskService taskService;  
  29.     protected FormService formService;  
  30.     protected HistoryService historyService;  
  31.     protected IdentityService identityService;  
  32.     protected ManagementService managementService;  
  33.       
  34.       
  35.     /** 
  36.      * 测试用例开始初始化工作 
  37.      * 1.创建相关的工作流程对象ProcessEngine 
  38.      * 2.创建相关的服务 
  39.      * 3. 
  40.      */  
  41.     @Override  
  42.     protected void setUp() throws Exception {  
  43.         super.setUp();  
  44.         //由于ProcessEngine为线程安全性对象,整个项目可以共用一个  
  45.         if(processEngine==null) {  
  46.             //此处使用此种方法调用的activiti的配置文件为 classpath路径下的activiti.cfg.xml  
  47.             //采用的H2的数据库  
  48.             processEngine = ProcessEngines.getDefaultProcessEngine();  
  49.         }  
  50.         //获取工作流的各种服务信息  
  51.         repositoryService = processEngine.getRepositoryService();  
  52.         runtimeService = processEngine.getRuntimeService();  
  53.         taskService = processEngine.getTaskService();  
  54.         formService = processEngine.getFormService();  
  55.         historyService = processEngine.getHistoryService();  
  56.         identityService = processEngine.getIdentityService();  
  57.         managementService = processEngine.getManagementService();  
  58.         //调用扩展的初始化工作  
  59.         initialize();  
  60.           
  61.     }  
  62.       
  63.     /** 
  64.      * test销毁方法 
  65.      */  
  66.     @Override  
  67.     protected void tearDown() throws Exception {  
  68.         super.tearDown();  
  69.         destroy();  
  70.     }  
  71.       
  72.     /** 
  73.      * 便于子类的工作的初始化的扩展工作 
  74.      *  
  75.      *  
  76.      * @throws Exception 
  77.      */  
  78.     protected abstract void initialize() throws Exception;  
  79.     /** 
  80.      * 便于子类的工作的销毁的扩展工作 
  81.      *  
  82.      * @throws Exception 
  83.      */  
  84.     protected abstract void destroy() throws Exception;  
  85. }  

 

 

Java代码   收藏代码
  1. /** 
  2. package com.easyway.workflow.activiti.gateway; 
  3. import java.util.Date; 
  4. /** 
  5.  * 测试实例如下 
  6.  *  
  7.  * @author longgangbai 
  8.  *  
  9.  * 2011-12-18  上午12:00:03 
  10.  */  
  11. public class ParallelGatewayTest extends AbstractTest {   
  12.     private String deploymentId;   
  13.     private Date start = null;   
  14.     private Date end = null;   
  15.   
  16.     @Override   
  17.     protected void initialize() throws Exception {   
  18.         deploymentId = repositoryService.createDeployment()   
  19.         .addClasspathResource("diagrams/UserExecuteTask.bpmn20.xml")   
  20.         .deploy().getId();   
  21.     }   
  22.   
  23.     @Override   
  24.     protected void destroy() throws Exception {   
  25.             repositoryService.deleteDeployment(deploymentId, true);   
  26.     }   
  27.   
  28.     @Deployment   
  29.     public void testUnbalancedForkJoin() {   
  30.         //获取流程实例对象  
  31.         ProcessInstance pi = runtimeService.startProcessInstanceByKey("UserExecuteTask");   
  32.         //获取任务服务对象的查询  
  33.         TaskQuery query = taskService.createTaskQuery().processInstanceId(pi.getId()).orderByTaskName().asc();   
  34.        //获取所有的任务  
  35.         List<Task> tasks = query.list();   
  36.         assertEquals(3, tasks.size());   
  37.         start = new Date();   
  38.          
  39.         for(Task task : tasks) {  
  40.             //执行任务  
  41.             taskService.complete(task.getId());  
  42.             System.out.println("name =+"+task.getName());  
  43.             end = new Date();   
  44.             System.out.println("" + (end.getTime()-start.getTime()) + "ms.");   
  45.         }   
  46.         //查询任务  
  47.         tasks = query.list();   
  48.         assertEquals(1, tasks.size());   
  49.         for(Task task : tasks) {   
  50.             taskService.complete(task.getId());   
  51.             System.out.println("name =+"+task.getName());  
  52.             end = new Date();   
  53.             System.out.println("" + (end.getTime()-start.getTime()) + "ms.");   
  54.         }   
  55.         end = new Date();   
  56.         System.out.println("" + (end.getTime()-start.getTime()) + "ms.");   
  57.     }   
  58. }  

 运行结果:

Java代码   收藏代码
  1. 2011-12-18 13:15:29 org.activiti.engine.ProcessEngines initProcessEnginFromResource  
  2. 信息: initializing process engine for resource jar:file:/C:/activiti-rest/activiti-cfg.jar!/activiti.cfg.xml  
  3. 2011-12-18 13:15:32 org.activiti.engine.impl.ProcessEngineImpl <init>  
  4. 信息: ProcessEngine default created  
  5. 2011-12-18 13:15:32 org.activiti.engine.ProcessEngines initProcessEnginFromResource  
  6. 信息: initialised process engine default  
  7. 2011-12-18 13:15:32 org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run  
  8. 信息: JobAcquisitionThread starting to acquire jobs  
  9. 2011-12-18 13:15:32 org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy  
  10. 信息: Processing resource diagrams/UserExecuteTask.bpmn20.xml  
  11. 2011-12-18 13:15:33 org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes  
  12. 信息: XMLSchema currently not supported as typeLanguage  
  13. 2011-12-18 13:15:33 org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes  
  14. 信息: XPath currently not supported as expressionLanguage  
  15. 2011-12-18 13:15:43 com.easyway.workflow.activiti.gateway.ProductManagerUserTaskListener notify  
  16. 信息: variavles={}  
  17. 2011-12-18 13:15:43 com.easyway.workflow.activiti.gateway.ProductManagerUserTaskListener notify  
  18. 信息: 产品经理,请假天数大约3天,同意请假。  
  19. name =+产品经理同意  
  20. 10094ms.  
  21. 2011-12-18 13:15:53 com.easyway.workflow.activiti.gateway.TeamLeaderUserTaskListener notify  
  22. 信息: variavles={产品经理=请假天数大约3天,同意请假。}  
  23. 2011-12-18 13:15:53 com.easyway.workflow.activiti.gateway.TeamLeaderUserTaskListener notify  
  24. 信息: 项目组长,请假天数小于3天,同意请假。  
  25. name =+项目组长同意  
  26. 20172ms.  
  27. 2011-12-18 13:16:03 com.easyway.workflow.activiti.gateway.DeveloperManagerUserTaskListener notify  
  28. 信息: variavles={项目组长=请假天数小于3天,同意请假。, 产品经理=请假天数大约3天,同意请假。}  
  29. 2011-12-18 13:16:03 com.easyway.workflow.activiti.gateway.DeveloperManagerUserTaskListener notify  
  30. 信息: 项目经理,请假天数大约3天,同意请假。.  
  31. name =+项目经理同意  
  32. 30313ms.  
  33. 2011-12-18 13:16:13 com.easyway.workflow.activiti.gateway.ProductBossUserTaskListener notify  
  34. 信息: variavles={项目组长=请假天数小于3天,同意请假。, 项目经理=请假天数大约3天,同意请假。, 产品经理=请假天数大约3天,同意请假。}  
  35. 2011-12-18 13:16:13 com.easyway.workflow.activiti.gateway.ProductBossUserTaskListener notify  
  36. 信息: 项目总监,请假天数大约3天,同意请假。  
  37. name =+项目总监同意  
  38. 40485ms.  
  39. 40485ms.  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蛋白质是生物体中普遍存在的一类重要生物大分子,由天然氨基酸通过肽键连接而成。它具有复杂的分子结构和特定的生物功能,是表达生物遗传性状的一类主要物质。 蛋白质的结构可分为四级:一级结构是组成蛋白质多肽链的线性氨基酸序列;二级结构是依靠不同氨基酸之间的C=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物中的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动中发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一类重要物质,对于维持生物体的正常生理功能具有至关重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值