精华内容
下载资源
问答
  • 例举法(创新技法4)

    千次阅读 2015-05-05 23:22:25
    例举法和检核表法都是一种列表法。例举法表示:一、缺点列举法:缺点例举法是美国通用公司的发明的一种创新方法,方法是通过对事物的分析,着重找出它的缺点和不足,然后再根据主次和因果,采取改进措施。从而在原有...

    例举法和检核表法都是一种列表法。例举法表示:
    一、缺点列举法:

    缺点例举法是美国通用公司的发明的一种创新方法,方法是通过对事物的分析,着重找出它的缺点和不足,然后再根据主次和因果,采取改进措施。从而在原有的基础上创造一个新的成果。任何一个产品都会有优点和缺点,这个优缺点当然是以人们的需求来作为判断的,缺点一般都是产品在某个方面不能满足人们的需求,或者对环境和人们本身有损害,因此对产品的缺点进行改进就是一种很基本的需求。因此缺点例举法是非常自然而然的一种改进和完善产品的基本方法。
    事物的缺点一般分为造就性缺点和转化性缺点。造就性缺点比较明显,而转化性缺点则比较隐蔽;

    缺点例举法不仅适用于”物“,也同样适用于”事“,既可以解决硬技术,也可以解决软技术问题(如企业管理等)。

    缺点例举法本身还可以借助于其它方法进行,比如智力激励法。

    列出缺点本身不是目的,目的是找到需要改进的缺点(主次)和进行解决的方法。

    事物缺陷按属性分:功能性,原理性,结构性,材料性,制造工艺,使用和维修等。

    二、希望点例举法:

    从个人愿望或广泛收集社会到的社会需求出发,提出并确定创造项目的一种技法。属于积极主动性发明方法。

    希望点例举法同样可以采用智力激励法来进行。

    三、事物特性列举法:

    特性例举法,也叫属性例举法后者分析创造法。通过对发明创造或者创新的对象进行特性分析:
    整体---》部件;材料---》制造方法和加工工艺;性质---》状态;功能--》作用
    一一列举出来,保其优点,去其缺点。
    特性例举法的三步走:
    1) 把大课题分成小课题,列出属性
           A) 名词特性:表明事物的整体,部分,材料和制造方法,加工工艺等。
           B)形容词特性:反映事物的性质,状态。
           C)动词特性:体现事物的某种功能,即特定的职责或用途。
    2)特性列出后,从各个特性出发,逐一对比国内外同类产品,找出优缺点,并得到完善和创新的方案。可以结合智力激励法以产生更多的设想。
    3)检验,评价,挑选出第2步中最佳的创新方案进行实施,实现创新目标。
    四、增减中间环节法
    这种方法可以用来处理前面三种方法得出的中间结果。这种环节不仅对制造方法或加工工艺有用,对产品本身也有用。产品多余的部分可以除掉,缺少的部分可以增加等。
    增减中间环节法对于软性产品(管理,软件等)非常有用。

    展开全文
  • STM32 串行通信 USART 程序例举

    万次阅读 2014-05-02 19:07:35
    #include "stm32f10x_lib.h" //包含了所有的头文件 它是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用。 #include "stm32f10x_map.h" /******************************快速位绑定********...

    STM32 串行通信 USART 的笔记讲解连接http://blog.csdn.net/dragon12345666/article/details/24484185

    1、串行通信 软件仿真STM32通过串口USART1发送26个英文字母(配置寄存器)

    /**************************************************************************************************
     *	硬件平台:STM32F103VC
     *	学习重点:GPIOx的位绑定
     *	实现功能:软件仿真,实现STM32通过USART1发送数据
     *	配置寄存器实现(其中打开系统时钟和GPIO引脚的配置是通过库函数实现的,后面会具体讲解)
     **************************************************************************************************/
    
     /*=============================================================================
     * 位绑定公式:
     * 1、SRAM区域 :0X2200 0000 ----0X200F FFFF
     *    Aliasaddr = 0X22000000 + ( A -0X20000000 )*32 + n*4
     * 2、片上外设区域 :0X4200 0000 ----0X400F FFFF
     *    Aliasaddr = 0X42000000 + ( A -0X40000000 )*32 + n*4
     * 参数解释:
     *          Aliasaddr : 设置“端口GPIOx的第n位”的寄存器_相应位的实际地址
     *          A : 端口GPIOx的基地址(GPIOx_BASE) + 相应寄存器的偏移地址
     *          n : 配置的是相应寄存器的第n位
     * 寄存器的偏移地址 :CRL  CRH  IDR  ODR  BSRR  BRR  LCKR
     *                    00H  04H  08H  0CH  10H   14H  18H 
     =============================================================================*/
    
    
    /* Includes ------------------------------------------------------------------*/
    #include "stm32f10x_lib.h"	  //包含了所有的头文件 它是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用。
    #include "stm32f10x_map.h"
    
    
    /******************************快速位绑定**********************************************************/
    /*----------------1、宏定义要操作的寄存器地址---------------------------------------------*/
     #define GPIOA_ODR (GPIOA_BASE + 0X0C)
     #define GPIOA_IDR (GPIOA_BASE + 0X08)
    
     #define GPIOB_ODR (GPIOB_BASE + 0X0C)
     #define GPIOB_IDR (GPIOB_BASE + 0X08)
    
     #define GPIOC_ODR (GPIOC_BASE + 0X0C)
     #define GPIOC_IDR (GPIOC_BASE + 0X08)
    
     #define GPIOD_ODR (GPIOD_BASE + 0X0C)
     #define GPIOD_IDR (GPIOD_BASE + 0X08)
    
     #define GPIOE_ODR (GPIOE_BASE + 0X0C)
     #define GPIOE_IDR (GPIOE_BASE + 0X08)
    
    /*----------------2、获取端口GPIOx(A-E)的对应寄存器的某一操作位的位地址-------------------*/
    // #define BitBand(Addr , BitNum) *( (volatile unsigned long *)(Addr & 0xf0000000) + 0x2000000 + ((Addr&0xfffff)*32) + (BitNum*4) ) 
    // 因为 左移、右移 语句的执行速度比乘除法语句的运动速度快,所以将上述语句改成如下方式
     #define BitBand(Addr , BitNum) *( (volatile unsigned long *)( (Addr & 0xf0000000) + 0x2000000 + ((Addr&0xfffff)<<5) + (BitNum<<2) ) ) 
      
    /*----------------3、宏定义函数,对固定的位绑定 进行功能封装------------------------------*/
     #define PAout(n) BitBand(GPIOA_ODR , n) 
     #define PAin(n)  BitBand(GPIOA_IDR , n)
    
     #define PBout(n) BitBand(GPIOB_ODR , n) 
     #define PBin(n)  BitBand(GPIOB_IDR , n)
    
     #define PCout(n) BitBand(GPIOC_ODR , n) 
     #define PCin(n)  BitBand(GPIOC_IDR , n)
    
     #define PDout(n) BitBand(GPIOD_ODR , n) 
     #define PDin(n)  BitBand(GPIOD_IDR , n)
    
     #define PEout(n) BitBand(GPIOE_ODR , n) 
     #define PEin(n)  BitBand(GPIOE_IDR , n)
    
    
    /*----------------函数声明部分---------------*/
    void delay1ms(int t) ;
    void RCC_Configuration(void) ;
    void GPIO_Configuration(void) ;
    
    
    /* Private functions -----------------------------------------------------------------------------*/ 
    /**************************************************************************************************
    * Function Name  : main
    * Description    : 从GPIOA.8-.16输入一个电平信号,GPIOA.0-.7口分别将对应引脚输入的电平信号输出
    * Input          : None
    * Output         : None
    * Return         : None
    ****************************************************************************************************/
    int main(void)
    {
    
    	float Div; 	//计算波特率时公式里面的除数
    	u16 M,F;    //临时存储Div的整数部分的数字和小数部分的数字
    	u32 Bound,BRR;	//Bound:要设置的波特率 , BRR:是Div的整数部分和小数部分整合后存入寄存器USART1->BRR中的值
    	u8  data='A';   //存放要发送的数据
    
    	RCC_Configuration(); //配置开启系统时钟
    	GPIO_Configuration();  //配置IO口
    
    	/*--------USART1模块的设置:UE位使能、M位来定义字长、停止位的位数、TE位、BRR寄存器选择要求的波特率----------------*/
    	USART1->CR1 |= (1<<13);	 //位于寄存器CR1的第13位。UE = 1 ;对USART1进行使能。(=0时,分频器和输出被禁止)
    	USART1->CR1 &= ~(1<<12);  //位于寄存器CR1的第12位。M = 0 ;无奇偶校验位,起始位+8位数据+停止位(=1时,带一位奇偶校验位)
    	USART1->CR2 &= ~(3<<12);  //位于寄存器CR2的第13-12位。STOP = 00 ;1位停止位。(=01;0.5位。 =10;2位。 =11;1.5位)
    	USART1->CR1 |= (1<<3);	  //位于寄存器CR1的第3位。USART1的发送使能位。TE = 1 ;发送使能(=0时,禁止发送)
    
    	Bound = 9600; //设置波特率
    	Div = (float)(72*1000*1000)/(Bound*16);	  //乘以16是因为该芯片是16位的。(寄存器也是16位的)
    	M = Div;
    	F = (Div-M)*16;
    	BRR = M<<4|F;
    	USART1->BRR = BRR;	
    
    	/*--------发送一串字符‘A’--‘Z’到USART1的DR-----------------------------------------------------------------------------*/
    	for(F=0;F<26;F++)
    	{
    		USART1->DR = data;
    		data++;
    		while((USART1->SR & (1<<6))==0) ;
    	}
    
    }
    
    /*******************************************************************************
    * Function Name  : Delay_Ms
    * Description    : delay 1 ms.
    * Input          : dly (ms)
    * Output         : None
    * Return         : None
    *******************************************************************************/
    void delay1ms(int t)
    {
    	//机器周期T = 1/(72000000/12)s = 1/6000000 s = 1/6 us
    	int temp = 6000/4 ;
    	while(t--)
    	{
    		while(temp--)
    		{ ; }	
    	}
    
    }
    
    
    /*******************************************************************************
    * Function Name  : RCC_Configuration
    * Description    : Configures the different system clocks.
    * Input          : None
    * Output         : None
    * Return         : None
    *******************************************************************************/
    void RCC_Configuration(void)
    {
    	//----------使用外部RC晶振-----------
    	RCC_DeInit();			//初始化为缺省值
    	RCC_HSEConfig(RCC_HSE_ON);	//使能外部的高速时钟 
    	while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);	//等待外部高速时钟使能就绪
    	
    	//FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);	//Enable Prefetch Buffer
    	//FLASH_SetLatency(FLASH_Latency_2);		//Flash 2 wait state
    	
    	RCC_HCLKConfig(RCC_SYSCLK_Div1);		//HCLK = SYSCLK
    	RCC_PCLK2Config(RCC_HCLK_Div1);			//PCLK2 =  HCLK
    	RCC_PCLK1Config(RCC_HCLK_Div2);			//PCLK1 = HCLK/2
    	RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);	//PLLCLK = 8MHZ * 9 =72MHZ
    	RCC_PLLCmd(ENABLE);			//Enable PLLCLK
    
    	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);	//Wait till PLLCLK is ready
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);	//Select PLL as system clock
    	while(RCC_GetSYSCLKSource()!=0x08);		//Wait till PLL is used as system clock source
    	
    	//---------打开相应外设时钟--------------------
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);	//使能APB2外设的GPIOA的时钟	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);	//使能APB2外设的GPIOC的时钟
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
    	
    	//GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);	 
    		 
    }
    
    /*******************************************************************************
    * Function Name  : GPIO_Configuration
    * Description    : 初始化GPIO外设
    * Input          : None
    * Output         : None
    * Return         : None
    *******************************************************************************/ 
    void GPIO_Configuration(void)
    {
      GPIO_InitTypeDef GPIO_InitStructure;
    
      /* Configure USARTx_Tx as alternate function push-pull */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
    
      /* Configure USARTx_Rx as input floating */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
    
    }
    
    

    程序运行前的仿真界面:


    程序运行后的仿真界面:



    2、串行通信 软件仿真STM32通过串口USART1发送26个英文字母(调用库函数)

    首先:在主函数部分先要(调用自己编写的函数)对USART要用到的I/O端口进行配置、打开系统时钟配置和对USART1进行参数配置



    下图是通过调用库函数对USART1的参数进行配置,将其配置成异步收发模式、波特率用户可以自定的串口:



    源程序:

    /**************************************************************************************************
     *	硬件平台:STM32F103VC
     *	学习重点:调用库函数来实现对USART的操作
     *	实现功能:软件仿真,实现STM32通过USART1发送数据
     *	作    者:赵小龙
     **************************************************************************************************/
    
    
    /* Includes ------------------------------------------------------------------*/
    #include "stm32f10x_lib.h"	  //包含了所有的头文件 它是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用。
    #include "stm32f10x_map.h"
    
    
    /*----------------函数声明部分---------------*/
    void delay1ms(int t) ;
    void RCC_Configuration(void) ;
    void GPIO_Configuration(void) ;
    void USART_Configuration(u32 BaudRate) ;
    
    
    /* Private functions -----------------------------------------------------------------------------*/ 
    /**************************************************************************************************
    * Function Name  : main
    * Description    : 软件仿真,从USART1发送26个大写的英文字母
    * Input          : None
    * Output         : None
    * Return         : None
    ****************************************************************************************************/
    int main(void)
    {
    
    	u8 i,data;	
    /*--------配置开启系统时钟、配置USART1发送/接收使用的两个I/O口、配置USART1---------------------------------------------*/
    	RCC_Configuration();
    	GPIO_Configuration();
    	USART_Configuration(19600);
    
    /*--------发送一串字符‘A’--‘Z’到USART1的DR-----------------------------------------------------------------------------*/
    	data='A';
    	for(i=0;i<26;i++)
    	{
    		USART_SendData(USART1, data) ;
    		data++ ;
    		while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) ;//发送完成标志位为1时便是数据发送完毕,若为0时则应让程序等待(等待数据发送发送完成)
    		/*注意:这里最好不要按照以下形式书写,否则会出错,具体原因我暂且还不知道
    			u8 status ; 
    			status = USART_GetFlagStatus(USART1, USART_FLAG_TC) ;  //将查看状态寄存器的函数的返回值赋值给变量status 
    			while(status == RESET) ;
    		*/
    	}
    
    }
    
    /*******************************************************************************
    * Function Name  : Delay_Ms
    * Description    : delay 1 ms.
    * Input          : dly (ms)
    * Output         : None
    * Return         : None
    *******************************************************************************/
    void delay1ms(int t)
    {
    	//机器周期T = 1/(72000000/12)s = 1/6000000 s = 1/6 us
    	int temp = 6000/4 ;
    	while(t--)
    	{
    		while(temp--)
    		{ ; }	
    	}
    
    }
    
    
    /*******************************************************************************
    * Function Name  : RCC_Configuration
    * Description    : Configures the different system clocks.
    * Input          : None
    * Output         : None
    * Return         : None
    *******************************************************************************/
    void RCC_Configuration(void)
    {
    	//----------使用外部RC晶振-----------
    	RCC_DeInit();			//初始化为缺省值
    	RCC_HSEConfig(RCC_HSE_ON);	//使能外部的高速时钟 
    	while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);	//等待外部高速时钟使能就绪
    	
    	//FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);	//Enable Prefetch Buffer
    	//FLASH_SetLatency(FLASH_Latency_2);		//Flash 2 wait state
    	
    	RCC_HCLKConfig(RCC_SYSCLK_Div1);		//HCLK = SYSCLK
    	RCC_PCLK2Config(RCC_HCLK_Div1);			//PCLK2 =  HCLK
    	RCC_PCLK1Config(RCC_HCLK_Div2);			//PCLK1 = HCLK/2
    	RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);	//PLLCLK = 8MHZ * 9 =72MHZ
    	RCC_PLLCmd(ENABLE);			//Enable PLLCLK
    
    	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);	//Wait till PLLCLK is ready
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);	//Select PLL as system clock
    	while(RCC_GetSYSCLKSource()!=0x08);		//Wait till PLL is used as system clock source
    	
    	//---------打开相应外设时钟--------------------
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);	//使能APB2外设的GPIOA的时钟	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);	//使能APB2外设的GPIOC的时钟
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
    	
    	//GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);	 
    		 
    }
    
    /*******************************************************************************
    * Function Name  : GPIO_Configuration
    * Description    : 初始化GPIO外设
    * Input          : None
    * Output         : None
    * Return         : None
    *******************************************************************************/ 
    void GPIO_Configuration(void)
    {
      GPIO_InitTypeDef GPIO_InitStructure;
    
      /* Configure USARTx_Tx as alternate function push-pull */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
    
      /* Configure USARTx_Rx as input floating */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
    
    }
    
    /*******************************************************************************
    * Function Name  : USART_Configuration
    * Description    : 初始化串口USART1(异步收发模式)
    * Input          : BaudRate (要设置的波特率)
    * Output         : None
    * Return         : None
    *******************************************************************************/ 
    void USART_Configuration(u32 BaudRate)
    {
    //1、定义一个用于初始化USART的结构体
    	USART_InitTypeDef USART_InitStructure;
    	 
    //2、给结构体元素赋值,设置 波特率、数据帧的位数、停止位的位数、奇偶校验位、硬件流控制位、USART模式(发送、接收)
    	USART_InitStructure.USART_BaudRate = BaudRate; 
    	USART_InitStructure.USART_WordLength = USART_WordLength_8b; 
    	USART_InitStructure.USART_StopBits = USART_StopBits_1; 
    	USART_InitStructure.USART_Parity = USART_Parity_No; 
    	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 
    	USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;  
    
    //3、调用函数USART_Init();用上面的结构体值作为参数对USART1进行初始化
    	USART_Init(USART1, &USART_InitStructure);
    
    //4、调用函数USART_Cmd();对USART1进行使能
    	USART_Cmd(USART1, ENABLE);
    
    }
    
    


    程序运行前:



    程序运行后:






















    展开全文
  • 目录简述三类节点说明其他说明简单举例 简述 默认情况下,ES集群节点都是混合节点,即在elasticsearch.yml中默认node.master: true和node.data: true。 当ES集群规模达到一定程度以后,就需要注意对集群节点进行...

    简述

    • 默认情况下,ES集群节点都是混合节点,即在elasticsearch.yml中默认node.master: truenode.data: true
    • 当ES集群规模达到一定程度以后,就需要注意对集群节点进行角色划分。
    • ES集群节点可以划分为三种:主节点、数据节点和客户端节点。
    • 这是一种分而治之的思想,也是一种术业专攻的体现。

    三类节点说明

    • master - 主节点
      • elasticsearch.yml :
        node.master: true
        node.data: false
        
      • 主要功能:维护元数据,管理集群节点状态;不负责数据写入和查询。
      • 配置要点:内存可以相对小一些,但是机器一定要稳定,最好是独占的机器。
    • data - 数据节点
      • elasticsearch.yml :
        node.master: false
        node.data: true
        
      • 主要功能:负责数据的写入与查询,压力大。
      • 配置要点:大内存,最好是独占的机器。
    • client - 客户端节点
      • elasticsearch.yml :
        node.master: false
        node.data: false
        
      • 主要功能:负责任务分发和结果汇聚,分担数据节点压力。
      • 配置要点:大内存,最好是独占的机器
    • mixed- 混合节点(不建议)
      • elasticsearch.yml :
        node.master: true
        node.data: true
        
      • 主要功能:综合上述三个节点的功能。
      • 配置要点:大内存,最好是独占的机器。
      • 特别说明:不建议这种配置,节点容易挂掉

    其他说明

    • 虽然上面章节中,未对单个服务器的磁盘大小进行要求,但是整体ES集群的总磁盘大小要保证足够。

    简单举例

    假定共计20台机器,则可以按照如下配置:

    节点类型机器数量内存大小其他
    master316GB机器必须稳定
    data1231GB
    client531GB

    以上,只是简单的举例,可根据实际情况调节。

    展开全文
  • 这里的scope可以设置这个包的作用域,设置provided该jar将不被引用他的项目继承。 3.写了一套测试代码,在调用dao方法的时候,mybatis的配置明明都对,但是就是报下面的错误 org.apache.ibatis.binding....

    1.怎样使用maven的tomcat去运行项目?

    需要在运行项目的pom文件的build里做如下配置

    <plugin>
    
         <groupId>org.apache.tomcat.maven</groupId>
         <artifactId>tomcat7-maven-plugin</artifactId>
         <version>2.2</version>
         <configuration>
            <server>tomcat7</server>
         </configuration>
    
    </plugin>

    然后还要在settings.xml里配置下面这段代码

    <servers>       
        <server>
            <id>tomcat7</id>  
            <username>admin</username> 
            <password>admin</password> 
        </server>
    </servers>

    然后右击项目——Run As——Maven build 弹出的对话框中的Goals中输入clean install tomcat7:run然后点下面的Debug,项目就跑起来了

    2.另外运行的时候遇到下面的错误别慌

    严重: A child container failed during start
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:188)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)
        at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1238)
        at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:592)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: org.apache.catalina.LifecycleException: A child container failed during start
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 6 more

    检查你的pom文件,是否引入了servlet-api,因为这是tomcate的jar,如果引入了可能会跟maven中的tomcate插件中的servlet-api冲突,所以干掉就好了,如果是你的底层引用的项目必须使用servlet-api,那么可以加上scope,如下写法

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

    这里的scope可以设置这个包的作用域,设置provided该jar将不被引用他的项目继承。

    3.写了一套测试代码,在调用dao方法的时候,mybatis的配置明明都对,但是就是报下面的错误

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sunchenbin.store.dao.TestDao.findTestCount

    说白了就是找不到xml中的id=findTestCount的那段sql…

    后来发现,maven做instal之后,jar包里没有把xml打进来,坑爹啊,所以找到了下面这段代码,加到pom文件的build里面,重新instal就可以了。

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
    展开全文
  • 必须知道的python专属骚技巧25

    万次阅读 多人点赞 2021-03-16 11:17:43
    比如:(1)“hello xiao mi” - >“ mi xiao你好“ 2)再: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入参数: int* pArray1 :整型数组1 intiArray1Num:数组1元素个数 int* pArray2 :...
  • 随着铁路自动化物联网的兴起,继电器这一常见的电器又一次进入了大家的讨论话题中。那么具有哪些作用呢?下面就来例举一下。
  • 那么在上述驱动板中,自电路就没有作用了吗?当然不是,由于MOS管的特性,自电路在增加栅源电压的同时,还可令MOS管的导通电阻减小,从而减少发热损耗,因此仍然建议采用轮流导通的方式,用自电容产生的大压差...
  • 深入理解JavaScript中的作用域、作用域链和闭包

    万次阅读 多人点赞 2018-05-14 17:00:19
    作用域先来谈谈变量的作用域 变量的作用域无非就是两种:全局变量和局部变量。 全局作用域: 最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的:&lt;script&gt; var outerVar...
  • Python中pass的作用

    万次阅读 多人点赞 2016-07-28 09:37:13
    以if语句为,在c或c++/java中:if(true) ; //do nothing else { //do something }对应于python就要这样写:if true: pass #do nothing else: #do something1 pass语句在函数中的作用当你在编写一个程序时,执行
  • 浅谈UML学习笔记之用

    万次阅读 多人点赞 2013-02-03 21:24:04
    最近一直在学习UML的基础知识,再看完视频之后,并没有很好的总结,在画图的过程中发现了很多的问题,下面是看书的过程自己总结的UML用图的一点知识,与大家分享一下。  一、概念 ...用图的作用是描
  • 作用域和作用域链 精解

    千次阅读 2019-05-24 17:24:58
    **作用域(scope):一个变量的可用范围 2种: 全局作用域 :任何地方都可以访问,反复使用 函数作用域(局部作用域):仅在函数内部可访问,不能反复使用 例子: var a=10; function fun() { var a=100;...
  • UML图——用

    千次阅读 热门讨论 2014-01-26 11:03:11
    图是由参与者(Actor)、用例(Use Case)以及用它们之间的关系构成的用于描述系统静态视图的UML图(本定义摘自百度百科)。用图能够展示系统外部的各类执行者与系统中用例的关系。
  • ES6中箭头函数的作用

    千次阅读 2017-11-14 23:37:15
    //Person()构造器定义了`this`指针,指向了其实本身 this .age = 0 ; setInterval( function growUp () { //在non-strict模式下,growUp()方法定义了‘this’作为一个全局的对象。其 //不同于...
  • JavaScript关于作用域、作用域链和闭包的理解

    万次阅读 多人点赞 2017-04-29 22:04:30
    作用域先来谈谈变量的作用域 变量的作用域无非就是两种:全局变量和局部变量。 全局作用域: 最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的: var outerVar = "outer"; function ...
  • UML 用图 use case diagram

    千次阅读 2016-03-15 21:03:44
    UML 用图 用图是被称为参与者的外部用户所能观察到的系统功能的模型图。
  • UML学习之用图Use Case 上

    千次阅读 2015-04-09 22:42:23
    图的作用图是从用户的角度来描述对信息系统的需求,分析产品的功能和行为。用图定义和描述了系统的外部可见行为,是分析、设计直至组装测试的重要依据。让用户参与前期的系统分析与设计。 参与者的...
  • UML之用

    千次阅读 热门讨论 2013-12-26 21:04:11
    所谓用图就是由参与者(Actor)、用例(Use Case)... 当然在软件设计阶段,用图对于需求的分析和指导起着至关重要的作用。 用图的构成很简单,就几部分:参与者,用例,以及箭头。 参与者: 用例
  • 枚举类型的作用,这个解释非常的赞!

    千次阅读 多人点赞 2018-09-25 09:45:13
    之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 2、 举个例子来说明一下吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是...
  • 以四季为: public enum Season { SPRING, SUMMER, AUTUMN, WINTER } Season.valueOf()方法 此方法的作用是传来一个字符串,然后将它转换成对应的枚举变量。前提是传入的字符串和定义枚举变量的字符串一模一样,须...
  • 基于DSP的系统设计中,...以TMS320C6713型浮点DSP和AM29LV800B型Flash存储器为,阐述了上电自的硬件设计,JTAG程序加载,上电自过程,Flash的擦除及烧写,链接命令文件和编写,并详细说明各部分相互联系及作用
  • js作用域及作用域链概念理解及使用

    千次阅读 2016-07-12 15:50:46
    之前写过一篇JavaScript 闭包究竟是什么的文章理解闭包,觉得写得很清晰,可以简单理解闭包产生原因,但看评论都在说了解了作用域链和活动对象才能真正理解闭包,起初不以为然,后来在跟公司同事交流的时候发现作用...
  • WEB前端学习二 JS作用域和作用域链

    千次阅读 2018-06-04 11:05:26
    先上三段说明作用域的代码?1234567891011121314151617181920212223242526272829303132//==========1========== var scope='global';function fn(){ alert(scope); var scope='local'; alert(scope);}fn(); //...
  • UML用

    千次阅读 2012-07-17 23:43:25
    定义:用图是UML用例建模的一种,也是UML建模的基础,主要用于描述用户与系统或者系统内部的功能需求与行为。灵活的运用用图,能够让描述的需求或者行为清晰的表达其该有的含义。 用图的组成分别为:参与者...
  • Spring Bean的scope(作用域)

    万次阅读 2018-04-24 19:11:17
    该篇博客主要阐述关于Bean的作用域(scope)。Spring容器最初提供了两种bean的scope类型:singleton和prototype,在Spring2.0之后又引入了另外三种scope类型:request、session、global session类型。不过这三种类型...
  • C++ 单冒号: 和双冒号:: 的作用

    万次阅读 多人点赞 2015-10-09 10:48:09
    C++ 单冒号: 和双冒号:: 的作用
  • DC-DC自电容(BOOT)几个问题

    千次阅读 2019-11-09 11:39:54
    以MPS的buck芯片MP1484为。规格书中芯片的BS管脚说明如下: 在BS和SW之间接一个0.01uf的电容,用来给上管供电。这里的上管自然是内部开关MOS管的上管了。 上图是MP1484芯片内部图。可以看到开关管是2个...
  • C-C++趣味程序百.doc

    2019-12-04 09:07:43
    C/C++编程实例,文中了很多生活中应用C/C++编程的例子学会了文中的例子对于C语言算法的理解有很大促进作用,例子生动有趣结合生活。学以致用。
  • 对C++中函数原型作用域的理解

    千次阅读 2014-11-23 22:50:16
    今天读到了有关作用域的一些知识,感觉有必要总结一些。...个例子:intadd(int a,intb);此函数中的a和b的作用域就是函数原型作用域,它们的作用范围仅限于这个括号中,出了这个括号就不管用了。 还有
  • pass语句的作用

    千次阅读 2018-01-14 23:38:28
    1. pass语句的作用 空语句,do nothing 保证格式完整 保证语义完整 以if语句为,当没有执行逻辑时,在c或c++/java中这样写: if(true) ; //do nothing else { //do something } 对于python就要这样写: ...
  • 为规

    千次阅读 2006-08-30 14:23:00
    原文:SpecificationByExample(译注1) 敏捷 2006年6月16日 Bliki 索引译注1:以为规,“”即测试涉及到的例子,这里主要是指验收测试(Acceptance Testing);“规”即软件规格说明书,以下简称“规格”;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,045
精华内容 45,618
关键字:

例举的作用