1. 程式人生 > >mybatis3.2.6整合spring4.0和springMVC4.0開發

mybatis3.2.6整合spring4.0和springMVC4.0開發

1. 新建專案,匯入jar包

在eclipse/myeclipse上新建一個web專案,匯入如下圖所示的jar包,關於jar包的整合資源可到http://download.csdn.net/detail/qwe6112071/9467007進行下載
這裡寫圖片描述

如果使用了maven,則配置更為方便:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- spring版本號 -->
        <spring.version
>
4.0.2.RELEASE</spring.version> <!-- mybatis版本號 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日誌檔案管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties
>
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <!-- 表示開發的時候引入,釋出的時候不會載入此包 --> <scope>test</scope> </dependency
>
<!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 匯入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- 匯入Mysql資料庫連結jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 匯入dbcp的jar包,用來在applicationContext.xml中配置資料庫 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- 日誌檔案管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 格式化物件,方便輸出日誌 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- log end --> <!-- 映入JSON --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.11</version> </dependency> </dependencies>

2. 配置web.xml檔案

    <?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns="http://java.sun.com/xml/ns/javaee"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
    version="3.0">  
    <display-name>demo</display-name>  

     <!-- 該servlet為tomcat,jetty等容器提供,將靜態資源對映從/改為/static/目錄,如原來訪問 http://localhost/foo.css ,現在http://localhost/static/foo.css -->  
    <!-- 不攔截靜態檔案 -->  
    <servlet-mapping>  
        <servlet-name>default</servlet-name>  
        <url-pattern>/js/*</url-pattern>  
        <url-pattern>/css/*</url-pattern>  
        <url-pattern>/images/*</url-pattern>  
        <url-pattern>/fonts/*</url-pattern>  
    </servlet-mapping> 

    <!-- Spring和mybatis的配置檔案 -->  
    <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath*:spring/spring-*.xml</param-value>  
    </context-param>  
    <!-- 編碼過濾器 -->  
    <filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <async-supported>true</async-supported>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
    <!-- Spring監聽器 -->  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>  
    <!-- 防止Spring記憶體溢位監聽器 -->  
    <listener>  
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
    </listener>  

    <!-- Spring MVC servlet -->  
    <servlet>  
        <servlet-name>SpringMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath:spring/spring-mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <async-supported>true</async-supported>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>SpringMVC</servlet-name>  
        <!-- 此處可以可以配置成*.do,對應struts的字尾習慣 -->  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>  
    <welcome-file-list>  
        <welcome-file>/index.jsp</welcome-file>  
    </welcome-file-list>  

</web-app>  

3. 配置日誌記錄檔案

在classpath路徑下建立檔案log4j.properties,並在裡面填寫

 log4j.rootLogger=DEBUG,Console,File  
#定義日誌輸出目的地為控制檯  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
#可以靈活地指定日誌輸出格式,下面一行是指定具體的格式  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  

#檔案大小到達指定尺寸的時候產生一個新的檔案  
log4j.appender.File = org.apache.log4j.RollingFileAppender  
#指定輸出目錄  
log4j.appender.File.File = logs/ssm.log  
#定義檔案最大大小  
log4j.appender.File.MaxFileSize = 10MB  
# 輸出所以日誌,如果換成DEBUG表示輸出DEBUG以上級別日誌  
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n 

4. 配置spring-mybatis整合檔案

<?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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

    <!-- 自動掃描 -->
    <context:component-scan base-package="com.yc" />
    <!-- 引入配置檔案 -->
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties" />
    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
        <!-- 初始化連線大小 -->
        <property name="initialSize" value="${initialSize}"></property>
        <!-- 連線池最大數量 -->
        <property name="maxActive" value="${maxActive}"></property>
        <!-- 連線池最大空閒 -->
        <property name="maxIdle" value="${maxIdle}"></property>
        <!-- 連線池最小空閒 -->
        <property name="minIdle" value="${minIdle}"></property>
        <!-- 獲取連線最大等待時間 -->
        <property name="maxWait" value="${maxWait}"></property>
    </bean>

    <!-- spring和MyBatis完美整合,不需要mybatis的配置對映檔案 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 例項化sqlSessionFactory時需要使用上述配置好的資料來源以及SQL對映檔案 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 自動掃描mapping.xml檔案 , 省掉Configuration.xml裡的手工配置 -->
        <property name="mapperLocations" value="classpath*:com/yc/mapping/*Mapper.xml"></property>
    </bean>

    <!-- DAO介面所在包名,Spring會自動查詢對應包及其子包下的所有對映介面類 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.yc.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

    <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
        <property name="dataSource" ref="dataSource" /> </bean>
    <!-- 攔截器方式配置事物 -->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="append*" propagation="REQUIRED" />
            <tx:method name="insert*" propagation="REQUIRED" />
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="modify*" propagation="REQUIRED" />
            <tx:method name="edit*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="remove*" propagation="REQUIRED" />
            <tx:method name="repair" propagation="REQUIRED" />
            <tx:method name="delAndRepair" propagation="REQUIRED" />

            <tx:method name="get*" propagation="SUPPORTS" />
            <tx:method name="find*" propagation="SUPPORTS" />
            <tx:method name="load*" propagation="SUPPORTS" />
            <tx:method name="search*" propagation="SUPPORTS" />

            <tx:method name="*" propagation="SUPPORTS" />
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:pointcut id="transactionPointcut"
            expression="execution(* com.yc.service..*Impl.*(..))" />
        <aop:advisor pointcut-ref="transactionPointcut"
            advice-ref="transactionAdvice" />
    </aop:config>
</beans>

5. 配置model、mapping檔案

先配置資料庫測試表,這裡以一個移動端後臺的使用者表為例,因為已經在資料庫建好表了,這時可以到$MYSQL_HOME/bin目錄下使用命令:
mysqldump -u使用者名稱 -p密碼 資料庫 使用者表
來匯出相應的表結構如
mysqldump -uyc -pyc yc User > /home/user.sql
到對應目錄開啟user.sql檔案則得到如下的建表sql語句:

DROP TABLE IF EXISTS `User`;
CREATE TABLE `User` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `headImg` varchar(255) DEFAULT NULL,
  `isDeleted` int(11) NOT NULL DEFAULT '0',
  `name` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `phoneNum` varchar(255) DEFAULT NULL,
  `userType` varchar(255) DEFAULT NULL,
  `openId` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
#以下插入兩條測試資料
LOCK TABLES `User` WRITE;
/*!40000 ALTER TABLE `User` DISABLE KEYS */;
INSERT INTO `User` VALUES (12,'http://localhost:8090/dheadImg/1.jpg',0,'glcnk','$2a$10$EpmkvDhQU5AHkn3Mvq1oDuJbT83aZRooqF0ZxdawiQsTz/sWfpxJa','1234','normal',NULL),(13,'http://localhost:8090/dheadImg/1.jpg',0,'psnys','$2a$10$dv4EQjbMwmUpbNB.kFySNe9RRJ1jwAXliK4FotoRLDrdfSAyWkk7C','3412','normal',NULL);
UNLOCK TABLES;

完成資料庫建表後,建立pojo檔案、xml等檔案,這裡有兩種方式,一種是手動配置,另一種是通過資料庫反向生成:

1. 手動配置

  1. 先建立對應的pojo類

        package com.yc.model;
    
        public class User {
            private Integer id;
    
            private String headimg;
    
            private Integer isdeleted;
    
            private String name;
    
            private String password;
    
            private String phonenum;
    
            private String usertype;
    
            private String openid;
    
            //方便測試時用到
            @Override
            public String toString() {
                return "User [id=" + id + ", headimg=" + headimg + ", isdeleted="
                        + isdeleted + ", name=" + name + ", password=" + password
                        + ", phonenum=" + phonenum + ", usertype=" + usertype
                        + ", openid=" + openid + "]";
            }
    
            getter and setter here.....
    }
  2. 建立對映介面java檔案

        package com.yc.dao;
    
        import com.yc.model.User;
    
        public interface UserMapper {
            User selectByPrimaryKey(Integer id);
    
        }
  3. 建立對應的UserMapper.xml檔案
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yc.dao.UserMapper" ><!-- 必須是UserMapper介面的全類名 -->
 <resultMap id="BaseResultMap" type="com.yc.model.User" >
   <id column="id" property="id" jdbcType="INTEGER" />
   <result column="headImg" property="headimg" jdbcType="VARCHAR" />
   <result column="isDeleted" property="isdeleted" jdbcType="INTEGER" />
   <result column="name" property="name" jdbcType="VARCHAR" />
   <result column="password" property="password" jdbcType="VARCHAR" />
   <result column="phoneNum" property="phonenum" jdbcType="VARCHAR" />
   <result column="userType" property="usertype" jdbcType="VARCHAR" />
   <result column="openId" property="openid" jdbcType="VARCHAR" />
 </resultMap>
 <sql id="Base_Column_List" >
   id, headImg, isDeleted, name, password, phoneNum, userType, openId
 </sql>
 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
   select 
   <include refid="Base_Column_List" />
   from User
   where id = #{id,jdbcType=INTEGER}
 </select>
</mapper>

這裡需要注意的是一些開發規範的問題,對應spring-mybatis.xml掃描配置,UserMapper.java檔案存放在classpath:com/yc/dao下,UserMapper.xml存放在classpath:com/yc/mapping下,同時要特別注意的是UserMapper.xml檔案中的namespace套與UserMapper.java檔案相對應,如本例中的com.yc.model.User如果這裡配置錯誤的話,我們在測試時會報如下錯誤資訊:
nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: ‘file [/home/myBatisYc/target/classes/com/yc/mapping/UserMapper.xml]’; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias ‘com.yc.User’. Cause: java.lang.ClassNotFoundException: Cannot find class: com.yc.User

2. 通過資料庫建表反向生成

可先到 http://download.csdn.net/detail/qwe6112071/9467019下載生成工具,解壓,然後配置裡面的generator.xml檔案,配置例項如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 資料庫驅動包位置 -->
<classPathEntry location="/home/zenghao/下載/generator/mysql-connector-java-5.1.34.jar" /> 
<!-- <classPathEntry location="C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar" />-->
<context id="DB2Tables" targetRuntime="MyBatis3">
    <commentGenerator>
        <property name="suppressAllComments" value="true" />
    </commentGenerator>
    <!-- 資料庫連結URL、使用者名稱、密碼 -->
     <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/yc" userId="root" password="root"> 
    <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa">-->
    </jdbcConnection>
    <javaTypeResolver>
        <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- 生成模型的包名和位置 -->
    <javaModelGenerator targetPackage="com.yc.model" targetProject="/home/zenghao/mybatis">
        <property name="enableSubPackages" value="true" />
        <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <!-- 生成的對映檔案包名和位置 -->
    <sqlMapGenerator targetPackage="com.yc.mapping" targetProject="/home/zenghao/mybatis">
        <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
    <!-- 生成DAO的包名和位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.yc.dao" targetProject="/home/zenghao/mybatis">
        <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
    <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
    <table tableName="Article" domainObjectName="BackArticle" enableCountByExample="false" enableUpdateByExample=
            
           

相關推薦

mybatis3.2.6整合spring4.0springMVC4.0開發

1. 新建專案,匯入jar包 在eclipse/myeclipse上新建一個web專案,匯入如下圖所示的jar包,關於jar包的整合資源可到http://download.csdn.net/detail/qwe6112071/9467007進行下載 如果

Mybatis3.2.6+oracle例子

http://www.luoshengsha.com/266.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.

Python爬蟲(入門+進階)學習筆記 2-6 Scrapy的RequestResponse詳解

上節課我們學習了中介軟體,知道了怎麼通過中介軟體執行反反爬策略。本節課主要介紹Scrapy框架的request物件和response物件 通常,Request物件在爬蟲程式中生成並傳遞到系統,直到它們到達下載程式,後者執行請求並返回一個Response物件,

spring boot 2.X整合spring securityspring oauth

​ 網上有很多該系列的教程,但是很多都是spring boot1.x,很少看見關於spring boot 2.0 .本人是打算做個spring cloud的web程式,這個整合我就是放在zuul上,類似於做了個閘道器的鑑權吧。。 國際通用案例

深入理解計算機系統(原書第三版)練習題2.6 感性認識整型浮點型別(同一個數)在機器中表示

/** * 練習題2.6 感性認識整型和浮點型別(同一個數)在機器中表示 * 由於我的機器是小端表示,將列印結果還原真實數並用二進位制表示 * 41913500 -->(還原) 0x00359141 -->(二進位制) 0000 0000 0011 0101

Android Studio3.0之前的6種依賴方式3.0之後新增的兩種依賴方式

一 3.0之前的6種方式 共發現6中方式 Compile,Provided,APK,Test compile,Debug compile,Release compile 1.1 Compile 對所有的build type以及f

將Ubuntu 10.04自帶2.6.32核心升級成3.0核心圖文教程

1、完成如下實踐工作,並截圖說明實踐步驟:1)下載安裝虛擬機器VMWare Workstation;2)在虛擬機器中安裝Linux2.x ;3)通過自行編譯,將Linux 2.x核心升級到Linux 3.x。 1)     安裝VMware Workstation 11.1

程式中如何列印日誌?(三) VC++6.0BCB6.0都不支援變長引數的巨集

       接著前面的來講。但是遺憾的是,無論是VC++6.0還是BCB6.0, 都不支援變長引數的巨集,所以在這種環境下,無法徹底解決之前的問題(在VS2005中可以)。既然如此,我們只能求其次了,還是利用變成引數的函式來迂迴解決吧: //---------------

Android 拍照相簿功能(適配Android 6.07.0系統華為機型問題)

眾所周知,呼叫相機拍照和相簿中獲取圖片的功能,基本上是每個程式App必備的。 實現適配Android每個版本,國內手機,要處理的問題卻也不少。例如:Android6.0許可權問題,Android7.0 FileProvider問題,華為手機相簿獲取不到圖片的問

Ubuntu16.04的Opencv原始碼安裝3.2.0 3.0.0-alpha詳細安裝教程

教程1: Opencv3.0.0-alpha在ubuntu16.04的安裝 # step 1 # 安裝依賴 (太多了,自己相應替換) sudo apt-get -y install libopencv-dev build-essential cmake

win10 NET Framework 3.5(包括.NET 2.03.0)錯誤代碼0x800f081f 的解決方法

inf 防火 類型 wal update 方法 安裝 pda ram 1、同時按下【Win+R】打開運行輸入 services.msc 點擊確定打開服務 2、雙擊打開【Windows Firewall】服務將啟動類型改“自動”,依次點擊【

django1.0django2.0的基於正則表達式的url區別

正則 url django1.0 django2.0django1.0和django2.0的基於正則表達式的url區別

selenium 1.0、selenium2.0selenium3.0區別

selenium 1.0 RC幾個核心組成部分: RC Server - jar ,主要負責跟瀏覽器打交道 RC Client -jar,一系列jar包,主要用來寫測試用例 RC core -javascript ,由RC Server注入到瀏覽器的selenium 核心主要操作控制元件 這裡RC的

OpenCV中MatIplImage之間的相互裝換(OpenCV2.0OpenCV3.0

Mat是OpenCV和C++介面的矩陣類,IplImage是OpenCV和C語言介面的結構體。 Mat讀取顯示用的是imread、imshow等,IplImage讀取顯示用的是cvLoadImage()、cvShowImage()。 有時候會涉及到兩者之間的轉換,下面詳細見介紹一下兩者之

Android App相容8.09.0

Android在8.0限制了後臺服務這些,啟動後臺服務需要設定通知欄,使服務變成前臺服務。但是在9.0上,就會出現Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE。 解決辦法

Retrofit2.0RxJava2.0的簡單封裝

一、首先新增專案依賴: implementation "com.squareup.okhttp3:logging-interceptor:$var.loggingInterceptor"

android8.09.0適配的一些問題

1.懸浮窗windowmanager許可權問題 需要跳轉到對應的系統許可權管理處讓使用者自己勾選 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 進入設定系統應用

javaSE (三十四)File類遞迴練習(統計資料夾大小、拷貝資料夾、層級列印資料夾、斐波拉契數列、獲取1000階乘全部0尾部0數目、約瑟夫環)

1、統計資料夾大小: 思路: 套用之前已經做過的,鍵入一個路徑,若有效則封裝成File類 初始化計數器len, 若資料夾下是檔案,則記錄檔案.length() 若資料夾下是資料夾,遞迴 輸出len 注:遞迴也可以刪除資料夾,但是一定要先刪除裡

0.0.0.0 127.0.0.1

127.0.0.1:是個(特殊的)IP地址,往往被分配給了loopback或僅區域網可以訪問的介面local-only interface 這是一個偽照的,假的,網路介面卡,其只能於同主機host內通訊 常用於:讓一個可以支援網路的程式,僅僅響應於同主機host內的客戶端

使用lifecycle時,1.0.01.0.3問題解決方法

將appcompat版本號改為27.0.2就行 implementation 'com.android.support:appcompat-v7:26.1.0' 我lifecycle修改後如下