1. 程式人生 > >整合ibatis的spring工程升級到spring4.0實操手冊

整合ibatis的spring工程升級到spring4.0實操手冊

Spring4及已經的版本放棄了對ibatis的整合支援,那有什麼辦法可以將自己的框架遷移升級到spring4呢。

我這裡有2個辦法可供參考:

1、改造spring-orm包:

        A、首先從spring-orm的jar包中將ibatis相關的class檔案及包結構全部複製出來,以備後用。

        B、更改工程的spring版本號到spring4

        C、將已經複製出來的ibatis包結構全部拖入spring4中spring-orm包的響應位置

        D、測試一下當前的應用,是不是已經可以了呢 ^_^

2、將spring直接升級到spring4.0,同時整合新的mybatis替代老版本的ibatis。

說明:這兩種辦法都各有優勢,同時也各有不足,實際升級過程中需要權衡考慮利弊關係。

第一中方法,在架構升級過程中,確保了最小改動量的原則,但是會造成一個隱形的私有開發包,一旦架構再次進行spring版本升級,本次的升級操作無法平滑過渡,這種潛規則式的改造方式,需要通過口傳心授的方式進行知識的傳遞,其實在一定程度上給後來的開發人員埋了一個不大不小的坑。

第二種方法將系統的依賴變更提現在pom檔案的依賴變化,雖然解決了升級產生的潛規則,但改造週期、測試周期都比較長。因此需要升級者權衡,如果工期緊張,而後續又有持續的改進升級計劃,第一種方式可以作為一種臨時的高效過渡方案,當有較充足的資源時,可以採用第二種方式,徹底將問題解決掉。

下面我們詳細介紹下spring4.0與ibatis的整合,便於大家在升級框架的過程中進行參考:

1、為方便說明,我們新建一個工程,來演示spring與mybatis的整合,新建工程:webinst,結構如下:

D:.
└─src
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─myteay
    │  │          └─common
    │  │              └─dal
    │  │                  └─dinner
    │  │                      ├─dao
    │  │                      ├─dataobject
    │  │                      ├─exec
    │  │                      └─ibatis
    │  ├─resources
    │  │  ├─META-INF
    │  │  │  └─spring
    │  │  └─sqlmap
    │  │      └─goods
    │  └─webapp
    │      └─WEB-INF
    └─test
        └─java
            └─com
                └─myteay
                    └─myibatis

工程樹說明:

  • dao路徑下用於存放定義的mybatis資料庫操作介面
  • dataobject路徑下用於存放資料模型
  • ibatis路徑下用於存放資料庫操作介面的實現
  • exec用於執行相關測試驗證程式碼
  • META-INF/spring路徑下存放當前工程的spring配置
  • sqlmap路徑下存放mybatis相關配置檔案
  • WEB-INF路徑下存放工程相關基礎配置如:applicationContext.xml、log4j.xml、web.xml等

本例以spring4.0.0.RELEASE版本為例來說明spring與mybatis的整合,pom檔案如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.myteay</groupId>
  <artifactId>webinst</artifactId>
  <version>0.0.1</version>
  <packaging>war</packaging>

  <name>webinst</name>
  <url>http://maven.apache.org</url>

  <dependencies>
	<dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-servlet_2.4_spec</artifactId>
        <version>1.1.1</version>
        <scope>provwided</scope>
    </dependency>
		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>slf4j-nop</artifactId>
		    <version>1.7.25</version>
		</dependency>
    	<!-- zxing -->
		<dependency>
			<groupId>com.google.zxing</groupId>
			<artifactId>core</artifactId>
			<version>3.0.0</version>
		</dependency>
    	<!-- mysql dependency start -->
		<dependency>
			<groupId>org.mysql</groupId>
			<artifactId>mysql-connector-java-commercial</artifactId>
			<version>5.1.33</version>
		</dependency>
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.2</version>
		</dependency>
    	<!-- mysql dependency end -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis-spring</artifactId>
		    <version>1.3.1</version>
		</dependency>
		<!-- spring dependency start -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>4.0.0.RELEASE</version>
		</dependency>
		<!-- spring dependency end -->

		<!-- unit test start -->
		<dependency>
			<groupId>jmock</groupId>
			<artifactId>jmock</artifactId>
			<version>1.2.0</version>
		</dependency>
		<dependency>
			<groupId>jmock</groupId>
			<artifactId>jmock-cglib</artifactId>
			<version>1.2.0</version>
		</dependency>
		<dependency>
	      <groupId>junit</groupId>
	      <artifactId>junit</artifactId>
	      <version>3.8.1</version>
	      <scope>test</scope>
	    </dependency>
		<!-- unit test end -->

		<dependency>
			<groupId>org.apache.mina</groupId>
			<artifactId>mina-core</artifactId>
			<version>2.0.4</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet</artifactId>
			<version>1.2.0</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.ibatis</groupId>
			<artifactId>ibatis-sqlmap</artifactId>
			<version>2.3.4.726</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging-api</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>commons-beanutils</groupId>
			<artifactId>commons-beanutils</artifactId>
			<version>1.7.0</version>
		</dependency>
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<version>1.5</version>
		</dependency>
		<dependency>
			<groupId>commons-jelly</groupId>
			<artifactId>commons-jelly</artifactId>
			<exclusions>
				<exclusion>
					<groupId>servletapi</groupId>
					<artifactId>servletapi</artifactId>
				</exclusion>
			</exclusions>
			<version>1.0-RC1</version>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.1</version>
		</dependency>
		<dependency>
			<groupId>commons-digester</groupId>
			<artifactId>commons-digester</artifactId>
			<version>1.8</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>commons-discovery</groupId>
			<artifactId>commons-discovery</artifactId>
			<version>0.4</version>
		</dependency>
		<dependency>
			<groupId>commons-pool</groupId>
			<artifactId>commons-pool</artifactId>
			<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.0</version>
		</dependency>
		<dependency>
			<groupId>commons-jexl</groupId>
			<artifactId>commons-jexl</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>nekohtml</groupId>
			<artifactId>nekohtml</artifactId>
			<version>0.9.5</version>
		</dependency>
		<dependency>
			<groupId>org.w3c.css</groupId>
			<artifactId>sac</artifactId>
			<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>jdom</groupId>
			<artifactId>jdom</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xerces</artifactId>
			<version>2.4.0</version>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.6.2</version>
		</dependency>
		<dependency>
			<groupId>com.thoughtworks.xstream</groupId>
			<artifactId>xstream</artifactId>
			<version>1.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-all</artifactId>
			<version>1.6.4</version>
		</dependency>
		<dependency>
			<groupId>org.antlr</groupId>
			<artifactId>antlr</artifactId>
			<version>3.1.3</version>
		</dependency>
		<dependency>
			<groupId>org.antlr</groupId>
			<artifactId>antlr-runtime</artifactId>
			<version>3.1.3</version>
		</dependency>
		<dependency>
		    <groupId>commons-fileupload</groupId>
		    <artifactId>commons-fileupload</artifactId>
		    <version>1.3</version>
		</dependency>
        <!-- fastjson -->  
        <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>fastjson</artifactId>  
            <version>1.1.28</version>  
        </dependency>  
  
        <!-- log4j -->  
        <dependency>  
            <groupId>log4j</groupId>  
            <artifactId>log4j</artifactId>  
            <version>1.2.16</version>  
        </dependency>  
  
        <!--javamail-->  
        <dependency>  
            <groupId>javax.mail</groupId>  
            <artifactId>mail</artifactId>  
            <version>1.4.7</version>  
        </dependency>  
  
        <!--velocity-->  
	    <dependency>  
	        <groupId>org.apache.velocity</groupId>  
	        <artifactId>velocity</artifactId>  
	        <version>1.6.2</version>  
	    </dependency>
	    <dependency>  
	        <groupId>org.apache.velocity</groupId>  
	        <artifactId>velocity-tools</artifactId>  
	        <version>2.0</version>  
	    </dependency>

  </dependencies>
  <build>
    <finalName>webinst</finalName>
    <plugins>
		<plugin>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>maven-jetty-plugin</artifactId>
			<version>6.1.26</version>
			<configuration>
				<scanIntervalSeconds>3</scanIntervalSeconds>
				<connectors>
					<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
						<port>80</port>
					</connector>
				</connectors>
				<scanTargetPatterns>
					<scanTargetPattern>
						<directory>src/main/webapp/WEB-INF</directory>
						<excludes>
							<exclude>**/*.jsp</exclude>
						</excludes>
						<includes>
							<include>**/*.properties</include>
							<include>**/*.xml</include>
						</includes>
					</scanTargetPattern>
				</scanTargetPatterns>
			</configuration>
		</plugin>
    </plugins>
  </build>
</project>

 說明:

  • pom中增加了對jetty的依賴,這樣可以方便我們後面的測試驗證
  • 為方便演示,增加了資料庫操作相關jar依賴
  • 本例中已mybatis3.4.2為目標整合版本

其中對mybatis的關鍵依賴如下:

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.2</version>
		</dependency>
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis-spring</artifactId>
		    <version>1.3.1</version>
		</dependency>

對spring的關鍵依賴如下:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-aop</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-beans</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context-support</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-core</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-expression</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jdbc</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-oxm</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-tx</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-web</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-webmvc</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-orm</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
	<version>4.0.0.RELEASE</version>
</dependency>

其他依賴為本人框架升級需要用到的,各位可以忽略。

下面開始進行工程完善:

1、定義資料模型(建資料庫表的過程這裡省略):

/**
 * Myteay.com Inc.
 * Copyright (c) 2015-2016 All Rights Reserved.
 */
package com.myteay.common.dal.dinner.dataobject;

import java.io.Serializable;
import java.util.Date;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * 商品資訊資料模型
 * 
 * @author Administrator
 * @version $Id: GoodsInfoDO.java, v 0.1 2016年3月5日 上午12:28:53 Administrator Exp $
 */
public class GoodsInfoDO implements Serializable {

    /** serialVersionUID */
    private static final long serialVersionUID = 4624303532159349944L;

    /** ID流水號 */
    private String            id;

    /** 店鋪流水號 */
    private String            shopId;

    /** 圖片地址 */
    private String            picAddr;

    /** 商品標題 */
    private String            goodsTitle;

    /** 價格 */
    private String            price;

    /** 備註 */
    private String            summary;

    /** 上架時間 */
    private Date              gmtCreated;

    /** 最後修改時間 */
    private Date              gmtModified;

    /**
     * Getter method for property <tt>id</tt>.
     * 
     * @return property value of id
     */
    public String getId() {
        return id;
    }

    /**
     * Setter method for property <tt>id</tt>.
     * 
     * @param id value to be assigned to property id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * Getter method for property <tt>shopId</tt>.
     * 
     * @return property value of shopId
     */
    public String getShopId() {
        return shopId;
    }

    /**
     * Setter method for property <tt>shopId</tt>.
     * 
     * @param shopId value to be assigned to property shopId
     */
    public void setShopId(String shopId) {
        this.shopId = shopId;
    }

    /**
     * Getter method for property <tt>picAddr</tt>.
     * 
     * @return property value of picAddr
     */
    public String getPicAddr() {
        return picAddr;
    }

    /**
     * Setter method for property <tt>picAddr</tt>.
     * 
     * @param picAddr value to be assigned to property picAddr
     */
    public void setPicAddr(String picAddr) {
        this.picAddr = picAddr;
    }

    /**
     * Getter method for property <tt>goodsTitle</tt>.
     * 
     * @return property value of goodsTitle
     */
    public String getGoodsTitle() {
        return goodsTitle;
    }

    /**
     * Setter method for property <tt>goodsTitle</tt>.
     * 
     * @param goodsTitle value to be assigned to property goodsTitle
     */
    public void setGoodsTitle(String goodsTitle) {
        this.goodsTitle = goodsTitle;
    }

    /**
     * Getter method for property <tt>price</tt>.
     * 
     * @return property value of price
     */
    public String getPrice() {
        return price;
    }

    /**
     * Setter method for property <tt>price</tt>.
     * 
     * @param price value to be assigned to property price
     */
    public void setPrice(String price) {
        this.price = price;
    }

    /**
     * Getter method for property <tt>summary</tt>.
     * 
     * @return property value of summary
     */
    public String getSummary() {
        return summary;
    }

    /**
     * Setter method for property <tt>summary</tt>.
     * 
     * @param summary value to be assigned to property summary
     */
    public void setSummary(String summary) {
        this.summary = summary;
    }

    /**
     * Getter method for property <tt>gmtCreated</tt>.
     * 
     * @return property value of gmtCreated
     */
    public Date getGmtCreated() {
        return gmtCreated;
    }

    /**
     * Setter method for property <tt>gmtCreated</tt>.
     * 
     * @param gmtCreated value to be assigned to property gmtCreated
     */
    public void setGmtCreated(Date gmtCreated) {
        this.gmtCreated = gmtCreated;
    }

    /**
     * Getter method for property <tt>gmtModified</tt>.
     * 
     * @return property value of gmtModified
     */
    public Date getGmtModified() {
        return gmtModified;
    }

    /**
     * Setter method for property <tt>gmtModified</tt>.
     * 
     * @param gmtModified value to be assigned to property gmtModified
     */
    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    /** 
     * @see java.lang.Object#toString()
     */
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }
}
 

2、定義DAO介面

/**
 * Danlley Wei (mailto://[email protected])
 * Copyright (c) 2005-2017 All Rights Reserved.
 */
package com.myteay.common.dal.dinner.dao;

import java.util.List;

import com.myteay.common.dal.dinner.dataobject.GoodsInfoDO;

/**
 * 
 * @author danlley([email protected])
 * @version $Id: GoodsInfoDAO.java, v 0.1 2017年4月3日 下午5:19:11 danlley([email protected]) Exp $
 */
public interface GoodsInfoDAO {

    public List<GoodsInfoDO> findAll();
}
 

相關推薦

整合ibatis的spring工程升級spring4.0手冊

Spring4及已經的版本放棄了對ibatis的整合支援,那有什麼辦法可以將自己的框架遷移升級到spring4呢。 我這裡有2個辦法可供參考: 1、改造spring-orm包:         A、首先從spring-orm的jar包中將ibatis相關的class檔案及包結構全部複製出來,以備後用。

手冊】如何把一場直播錄製下來?

許多使用者使用直播服務時,需要把正在直播的視訊錄製下來進行儲存或方便後續的回看。為了滿足使用者需求,阿里雲視訊直播服務提供了直播錄製功能,本文將對這兩種形式的錄製方法進行簡單介紹。 一、按場景錄製 針對不同的場景進行錄製配置 • 按域名、AppName、StreamNam

Linux+Nginx+Supervisor部署ASP.NET Core手冊

環境準備 nsh 托管 運行 wid 裝包 width tor 安裝 一、課程介紹 在上一節課程《ASP.NET Core托管和部署Linux實操演練手冊》中我們學過net core的部署方式多樣性和靈活性。我們通過遠程工具輸入dotnet 程序集名稱.dll的方式運

GitBook安裝部署手冊

前言 GitBook是一個基於Node.js的命令列工具,可使用Git和Markdown來編寫文件,讚譽太多,不再贅述。 Node.js 下載安裝包 cd /tmp wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz

Win7 安裝appscan9.0.3.10(可升級流程

Win10不能很好的相容appscan,建議使用者用win7系統安裝appscan 寫於:2018.12.2 IBM Security AppScan Standard 可通過自動執行應用安全漏洞測試,幫助最大限度地保護 Web 應用免遭攻擊、降低昂貴的資料洩露風險。它使您能夠在部署應用之前對其進行測試,

Spring4.0 整合Quartz2.2.1

mark apach ava class exp pack post 註入 針對 1.版本說明 Spring 4.0.0 Quartz 2.2.1 SpringMvc 4.0.0 2.Quartz依賴的jar包 <dependency> <grou

[CXF REST標準實戰系列] 二、Spring4.0 整合 CXF3.0,實現測試接口(轉)

strong print transport location nts bean query keyword tsig 轉自:[CXF REST標準實戰系列] 二、Spring4.0 整合 CXF3.0,實現測試接口 文章Points: 1、介紹RESTful架構風格

0成本漲粉過萬詳細復盤,新手也可100%上手!

負責 indent 邏輯 用戶體驗 關鍵詞 盈利 pac coo 覆蓋 我相信,在此之前你已經看過很多“0 成本漲粉”教程,但今天分享的“測試題漲粉”,你一定是第一次接觸。雖然比不上“培訓大師們”動不動就日漲 10 萬粉的“強勢”,但是我能做到 —— 小白看完立即能上手

C++:將C++工程從VC6.0工程升級到VS2017所遇到的程式碼不相容問題集合

一、errorC2440:訊息相應函式型別不能轉化 問題描述 VS2017編譯提示以下兩個問題: (1)errorC2440 “static_cast”: 無法從“UINT (__thiscall CSizingControlBar::* )(CPoint)”轉換為

【從0開始 獨立完成企業級Java電商網站開發】開發環境安裝與配置講解、

1. 作業系統 虛擬機器: parallels或者vmware fusion 下載地址:https://pan.baidu.com/s/1JxVDhY0Ei9T2suDeLNmFug Linux : centos6.8 64bit 下載地址: http://a

升級xcode10.0後,編譯原有正常工程遇到的坑

一大早上看到可以升級xcode10,心情美美噠。然而升級完,開始編譯原有正常工程,卻報錯了。 提示有重複的檔案。 問題1: Multiple commands produce '/Users/wmh/Library/Developer/Xcode/DerivedData

Firefox_64.0 中selenium ide_3.2.0的使用教程(

  寫於:2018.12.31 一、安裝selenium IDE   下載和安裝這裡推薦參考文章:https://blog.csdn.net/echizen_520/article/details/65444396 二、使用selenium IDE建立新指令碼 (一)建立新指令碼 1、點

Eclipse 引入 dubbo報錯,無法與 Spring4.0 整合的異常修復

在第一次將dubbo整合進當前專案時,發現無法使用。網上有很多類似帖子,嘗試了多好,將類似答案進行了整理,得出了可以解決自己問題的答案。不能保證完全解除此異常,但對我是有用的 涉及軟體與技術

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

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

使用Jenkins與Docker持續整合與釋出NetCore專案(篇)

# 使用Jenkins與Docker持續整合與釋出NetCore專案(教程一) 原文地址:[https://www.cnblogs.com/Jackyye/p/12588182.html](https://www.cnblogs.com/Jackyye/p/12588182.html) ## 基本環境 該教

spring4.0.0的配置和使用

target new static context odin bean 數據庫 getbean 工廠 1.創建一個javaproject或者webproject,我創建的時webproject,編譯器用的時myeclipse2013 2.在lib文件夾以下倒入sprin

Android Studio升級0.8.1後怎樣設置字體大小?

class 兩個 設置 span 技術 ng- alt -s android 升級到0.8.1後。打開設置字體大小頁面。你會發現無論是Default還是Darcula,都不同意你改變字體的大小。事實上這個是由於這兩個模式是Android Studio自帶模式,所以不同意

Spring4.0從入門到精通視頻教程 - 1. Spring的特點

spring4.0從入門到精通視頻教程 java 第三方 開發 輕量級:Spring 是非侵入性的 - 基於 Spring 開發的應用中的對象可以不依賴於 Spring 的 API依賴註入(DI --- dependency injection、IOC)面向切面編程(AOP --- aspec

Spring4.0從入門到精通視頻教程 - 2. 安裝SPRING TOOL SUITE

spring4.0從入門到精通視頻教程 spring tool suite 1、找到與eclipse版本配套的SPRING TOOL SUITE。http://spring.io/tools/sts/all2、Help -> Install New Software...3、Click Add.

Nexus設備升級5.0方法

trac 使用 div nexus fas space 相關 pan ref 1. 從該頁面為您的設備下載適當的系統映像。然後將它解壓縮到一個安全的文件夾。 2. 通過 USB 連接到您的計算機。 3. 使用下列的方法,在fastboot mode下啟動