搜档网
当前位置:搜档网 › 基于Maven的Spring + Spring MVC + Mybatis的环境搭建

基于Maven的Spring + Spring MVC + Mybatis的环境搭建

基于Maven的Spring + Spring MVC + Mybatis的环境搭建
基于Maven的Spring + Spring MVC + Mybatis的环境搭建

老大想要做一个TimeSheet的东西,要管理公司员工每年的时间和effort. 反正还要个什么报表,老大发话了,很荣幸我有此机会又可以和刚进公司带我的老大一起做东西了,感觉很好。不过这个项目是一个partime job,自己在工作中抽时间来做。当然啦,堆码的事情肯定我来搞定啦。

项目开发,需求不是我定,所以在等待需求的时候,我就将环境先搭建起来。上次做了一个Spring + Spring MVC + Mybatis + Log4J + JUnit Test的环境搭建,这次也差不多,不过就是基于了Maven,同时也添加了事务管理。

首先,可以去了解一下maven,个人觉得这个东西就是JAR包管理方便,不用自己一个个去写,直接添加dependence就行了,不过有时候要注意哟,有可能重复的包含了某个JAR包,会报冲突的哟,亲!因为只有一个POM文件里指定JAR包,所以整个项目都很小的,一般就几MB,只有你在将该项目打成WAR包的时候,maven会自动的把三方JAR包放进项目,然后你就可以去部署到Tomcat的webapp下面了,放进去,重启Tomcat就OK。

1.开始搭建我的环境吧。首先,IDE我用的是eclipse的JEE版本。要保证装上了Maven哟,可以使用eclipse的Install New Software,URL地址是https://www.sodocs.net/doc/7a3009314.html,/sites/m2e/,然后一步步走下去,安装好了过了会重启一次。给一个忠告哟,安装好了maven后,不要使用IDE里面的了,而是去官方下载一个,解压,然后让IDE的Maven指向你下载安装的,如图:

2.maven安装成功了,我们用Maven创建一个新的WEB项目。File—> New—> Other—>Maven Project.

选默认,下一步。在Select an Archetype里面种找到如下图所示

3.然后next,输入groupId:net.yuanmomo;artifactId:Test,然后finish,稍微等待一下,就创建好了。下面的是创建好了的一个初始的项目:

4.但是这个并不是默认的maven项目的标准结构.我们需要进行一些改动.

(1).在项目下创建一个Source Folder.

Folder Name:src/main/java

如下图所示:

(当然,还可以添加用于junit测试的src/test/java和src/test/resources

不过在此就不添加了.)

(2).在src/main/java中创建3个包(maven标准推荐是3层包结构)

(3).如果装的JDK是1.6的,更改JRE System Libary为1.6版本的.

(4).就src/main/webapp文件夹看做一个的WebRoot,然后创建js,css,jsp等文件夹。这样.一个标准的maven web项目创建成功.

5.大家一看上面的项目结构,很熟悉吧。maven的项目结构路径有点讨厌,有点让人很烦。maven 打WAR包的时候提取的东西是src/main/webapp下面的文件,然后打成一个WAR的WEB项目就可以部署了,但是,但是,我们在开发的时候,在使用eclipse里面的Tomcat调试的时候,tomcat却不是把src/main/webapp下面的文件部署到服务器。此时,如果你打开Server,然后add and remove,你在左边是找不到Test项目的,如下:

原因是因为Tomcat默认回去Test项目的路径下面去找

WebRoot—>WEB-INF-->web.xml(WebRoot文件夹的名字可以不一样,可以使其它的,但是

WEB-INF-->web.xml这两个名字不能变),但是当前就找不到这几个目录。这个时候有两个解决办法:

(5.1). 在Test项目的路径下面,按照路径规则创建WebRoot,WEB-INF等文件夹,然后把上面的web.xml拷贝到新建的WEB-INF中去。放心吧,我上一个项目就是这样做的,不过这种方式打死都不可取的。你修改JSP的时候改的是下面的,maven打包的时候用的上面的。你还得拷贝过来,拷过去,麻烦,如果再有svn管理,累死你,晕死你,我们经常是调试编写的时候再下面做,最后提交的时候还得一个个拷贝上去,还出很多问题。所以建议采用第二种方式。

(5.2).转换该项目:

(1)在Test工程名上右键-->Properties-->Project Facets-->Convet to faceted form,

(2)勾上Dynamic Web Module,选择2.4版本。同时点击下方的further configuration available

(3)将默认的WebContent改成src/main/webapp

(4)一路点OK..此时在server视图中的tomcat server上点右键-->Add and Remove,就能看到该项目于,然后部署啦。

至此,我们已经创建好了一个合格的基于Maven的项目,也可以在Tomcat中部署。接下来,我们开始整合我们的J2EE框架。

6.先给出数据库的创建脚本,方便测试搭建是否成功。

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--

-- 数据库: `timesheet`

--

CREATE DATABASE `timesheet` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

USE `timesheet`;

-- --------------------------------------------------------

--

-- 表的结构`testtable`

--

CREATE TABLE IF NOT EXISTS `testtable` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`nam e` varchar(50) COLLATE utf8_bin DEFAULT NULL,

`date` timestamp NULL DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

7.在pom文件中添加必要的jar包的dependence,可以从两个地方查询:

https://www.sodocs.net/doc/7a3009314.html,/

https://www.sodocs.net/doc/7a3009314.html,/

添加后的pom文件如下:

xmlns="https://www.sodocs.net/doc/7a3009314.html,/POM/4.0.0"xmlns:xsi="https://www.sodocs.net/doc/7a3009314.html,/2001/XMLSchema xsi:schemaLocation="https://www.sodocs.net/doc/7a3009314.html,/POM/4.0.0https://www.sodocs.net/doc/7a3009314.html,/ma 4.0.0

net.yuanmomo

Test

war

0.0.1-SNAPSHOT

Test Maven Webapp

https://www.sodocs.net/doc/7a3009314.html,

3.0.0.RELEASE

org.springframework

spring-core

${org.springframework.version}

org.springframework

spring-expression

${org.springframework.version}

org.springframework

spring-beans

${org.springframework.version}

org.springframework

spring-context

${org.springframework.version}

org.springframework

spring-orm

${org.springframework.version}

org.springframework

spring-web

${org.springframework.version}

org.springframework

spring-webmvc

${org.springframework.version}

org.springframework

spring-webmvc-portlet

${org.springframework.version}

org.springframework

spring-test

${org.springframework.version} test

org.mybatis

mybatis-spring

1.1.1

org.mybatis

mybatis

3.1.1

javax.servlet

jstl

1.2

javax.servlet

servlet-api

2.5

mysql

mysql-connector-java

5.1.21

log4j

log4j

1.2.14

runtime

commons-dbcp

commons-dbcp

1.4

commons-pool

commons-pool

1.4

commons-logging

commons-logging-api

1.1

commons-fileupload

commons-fileupload

1.2.2

https://www.sodocs.net/doc/7a3009314.html,mons

commons-io

1.3.2

dom4j

dom4j

1.6.1

org.aspectj

aspectjweaver

1.7.0

aopalliance

aopalliance

1.0

cglib

cglib-nodep

2.2.2

net.sf.json-lib

json-lib

jdk15

2.4

commons-beanutils

commons-beanutils 1.8.3

commons-collections

commons-collections 3.2.1

commons-lang

commons-lang

2.6

net.sf.ezmorph

ezmorph

1.0.5

junit

junit

3.8.1

test

Test

修改pom文件后,保存,maven会自动的去download这些jar包到本地。等待的时间可能会很长。上

面我把所有我这次项目用到的包都罗列出来了,如果你用不到的,可以自行删除。

下载完成过后,点开项目左侧的Maven Dependencies,你就能看到很多的下载的JAR包了。

8. 修改web.xml,配置Spring,spring MVC,log4j,乱码处理等。

xmlns:xsi="https://www.sodocs.net/doc/7a3009314.html,/2001/XMLSchema-instance"

xmlns="https://www.sodocs.net/doc/7a3009314.html,/xml/ns/javaee"

xmlns:web="https://www.sodocs.net/doc/7a3009314.html,/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="https://www.sodocs.net/doc/7a3009314.html,/xml/ns/javaee

https://www.sodocs.net/doc/7a3009314.html,/xml/ns/javaee/web-app_2_5.xsd"

id="WebApp_ID" version="2.5">

contextConfigLocation

classpath:/com/comverse/timesheet/config/ApplicationContext.xml

org.springframework.web.context.ContextLoaderListener

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

encodingFilter

/*

log4jConfigLocation

classpath:/com/comverse/timesheet/config/log4j.properties

log4jRefreshInterval

60000

org.springframework.web.util.Log4jConfigListener

dispatcher

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:/com/comverse/timesheet/config/dispatcher-servlet.xml

1

dispatcher

*.do

修改后保存该文件。

9.添加log4j.properties,jdbc.properties等配置文件:

路径位置:

各个配置文件的内容如下:

(1). log4j.properties: log4j的配置

#配置了控制台和文本记录两种方式

log4j.rootLogger=DEBUG,CONSOLE,FILEOUT

https://www.sodocs.net/doc/7a3009314.html,.apache=true

# CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.Threshold=DEBUG

log4j.appender.CONSOLE.Target=System.out

https://www.sodocs.net/doc/7a3009314.html,yout=org.apache.log4j.PatternLayout

#https://www.sodocs.net/doc/7a3009314.html,yout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

https://www.sodocs.net/doc/7a3009314.html,yout.ConversionPattern=[%-5p] %d{yyyy-MM-dd

HH\:mm\:ss} \:%m%n

#

# FILEOUT

log4j.appender.FILEOUT=org.apache.log4j.RollingFileAppender

log4j.appender.FILEOUT.File=${catalina.home}\\file.log

log4j.appender.fileout.MaxFileSize=100000KB

# default is true,append to the file; if false, the replace the log file whenever restart system

log4j.appender.FILEOUT.Append=true

#RollingFileAppender没有DatePattern这个属性

https://www.sodocs.net/doc/7a3009314.html,yout=org.apache.log4j.PatternLayout

#https://www.sodocs.net/doc/7a3009314.html,yout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

https://www.sodocs.net/doc/7a3009314.html,yout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd

xmlns:xsi="https://www.sodocs.net/doc/7a3009314.html,/2001/XMLSchema-instance"

xmlns:context="https://www.sodocs.net/doc/7a3009314.html,/schema/context"

xmlns:aop="https://www.sodocs.net/doc/7a3009314.html,/schema/aop"

xmlns:tx="https://www.sodocs.net/doc/7a3009314.html,/schema/tx"

xsi:schemaLocation="https://www.sodocs.net/doc/7a3009314.html,/schema/beans

https://www.sodocs.net/doc/7a3009314.html,/schema/beans/spring-beans-2.5.xsd

https://www.sodocs.net/doc/7a3009314.html,/schema/context

https://www.sodocs.net/doc/7a3009314.html,/schema/context/spring-context-2.5.xsd

https://www.sodocs.net/doc/7a3009314.html,/schema/aop

https://www.sodocs.net/doc/7a3009314.html,/schema/aop/spring-aop-2.5.xsd

https://www.sodocs.net/doc/7a3009314.html,/schema/tx

https://www.sodocs.net/doc/7a3009314.html,/schema/tx/spring-tx-2.5.xsd">

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigure

value="classpath:/com/comverse/timesheet/config/jdbc.properties" />

destroy-method="close">

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

rollback-for="https://www.sodocs.net/doc/7a3009314.html,ng.Exception"/>

expression="execution(* https://www.sodocs.net/doc/7a3009314.html,verse.timesheet.web.business.*.*(..))" />

value="classpath:/com/comverse/timesheet/mybatis/SqlMapConfig.xml" />

(4). dispatcher-servlet: Spring MVC的配置文件

xmlns:aop="https://www.sodocs.net/doc/7a3009314.html,/schema/aop"

xmlns:context="https://www.sodocs.net/doc/7a3009314.html,/schema/context"

xmlns:p="https://www.sodocs.net/doc/7a3009314.html,/schema/p"

xmlns:tx="https://www.sodocs.net/doc/7a3009314.html,/schema/tx"

xmlns:xsi="https://www.sodocs.net/doc/7a3009314.html,/2001/XMLSchema-instance"

xsi:schemaLocation="

接口调用说明文档

XXX)科技有限公司 数据接口 2015-5-26

目录 第1章引言. ......................................................... 错误!未定义书签。 背景. ........................................................... 错误!未定义书签。 第2章接口与数据定义. ................................................... 错误!未定义书签。 曝光台查询接口. ..................................................... 错误!未定义书签。 曝光台列表查询.......................... 错误!未定义书签。 曝光台详情查询.......................... 错误!未定义书签。 信用公示查询接口定义.......................... 错误!未定义书签。 守信公示列表查询.......................... 错误! 未定义书签。 守信公示详情查询.......................... 错误!未定义书签。 失信公示列表查询.......................... 错误!未定义书签。 失信公示详情查询.......................... 错误!未定义书签。 企业名称查询接口定义.......................... 错误!未定义书签。 Webservice 方法定义 ........................ 错误! 未定义书签。 请求参数. .................................................... 错误! 未定义书签。 返回数据. .................................................... 错误!未定义书签。 企业信息查询接口定义.......................... 错误!未定义书签。 Webservice 方法定义 ........................ 错误! 未定义书签。 请求参数. .................................................... 错误! 未定义书签。 返回数据. .................................................... 错误!未定义书签。

如何查找maven库的jar包

将开源项目的jar包导入maven形成独立项目 注:MAVEN仓库找jar包: 1,https://www.sodocs.net/doc/7a3009314.html, 2,https://www.sodocs.net/doc/7a3009314.html, 1,将“F:\share\开发框架\JFinal:WEB_ORM开发框架\JFinal官网\jfinal-1.8-bin-with-src.jar”这个jar包,解压到一个按maven项目建立的文件夹(D:\EclipseWorkspace\jfinal_bin_src\src\main\java)(如下图),删除文件夹下所有.class文件 2,在eclipse(luna)中导入上一步解压后的文件夹“D:\EclipseWorkspace\jfinal_bin_src”

3,如上图所示,多个java文件出现,import导入错误;如下图所示,输入import报错对应信息对应的jar包相关包内容,找到类似的包,如下图加红色圈标识,按“pom”链接

4,上一步“pom”链接打开,看下两图所示,复制前面maven的依赖相关代码,并拷贝到文本文档

5,在eclipse中打开(或新建)jfinal_bin_src/pom.xml,选择文件编辑区下方的“Dependencies”标签,再按“Add”按钮,如下图所示,从上一步的文本文件中复制Group Id等信息,并按

(注意,如果是有parent和model并存的,一般选择parent部分的Group Id和Version,“ok”。 选择model部分的Artifact Id) 6,如果上步输入的包依赖信息有错,则出现下图提示没有找到包

常用数据类型转换使用详解

VC常用数据类型使用转换详解 CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR; vc++中各种字符串的表示法 首先char* 是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。 LP的含义是长指针(long pointer)。LPSTR是一个指向以‘/0’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR。 而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。 1.LP表示长指针,在win16下有长指针(LP)和短指针(P)的区别,而在win32下是没有区别的,都是32位.所以这里的LP和P是等价的. 2.C表示const 3.T是什么东西呢,我们知道TCHAR在采用Unicode方式编译时是wchar_t,在普通时编译成char. 为了满足程序代码国际化的需要,业界推出了Unicode标准,它提供了一种简单和一致的表达字符串的方法,所有字符中的字节都是16位的值,其数量也可以满足差不多世界上所有书面语言字符的编码需求,开发程序时使用Unicode(类型为wchar_t)是一种被鼓励的做法。 LPWSTR与LPCWSTR由此产生,它们的含义类似于LPSTR与LPCSTR,只是字符数据是16位的wchar_t而不是char。 然后为了实现两种编码的通用,提出了TCHAR的定义: 如果定义_UNICODE,声明如下: typedef wchar_t TCHAR; 如果没有定义_UNICODE,则声明如下: typedef char TCHAR; LPTSTR和LPCTSTR中的含义就是每个字符是这样的TCHAR。 CString类中的字符就是被声明为TCHAR类型的,它提供了一个封装好的类供用户方便地使用。

Nexus仓库管理

Nexus仓库管理

管理仓库 为了管理Nexus仓库,以administrative用户登陆进Neuxs,然后点击Nexus 菜单左手边的Views/Repositories菜单中的Repositories。 Nexus提供了三种不同种类的仓库: ●Proxy Repositories ●Hostedrepositories ●Virtual repositories 1.代理仓库(Proxy Repository) 代理仓库是一个远程仓库的代理。默认的,Nexus附带下面已经配置的代理仓库: Apache Snapshots 这个仓库包含来ApacheSoftware Foundation发布的快照。 Codehaus Snapshots 这个仓库包含来Codehaus发布的快照。 Central 这是中央仓库包含发布组件。前身为Maven Central,它是Apache Maven默认的内置仓库,并且直接支持其它的构造工具,如Gradle, SBT或Ant/Ivy。Nexus通过HTTPS使用https://https://www.sodocs.net/doc/7a3009314.html,/maven2/链接连接中央仓库。 2.宿主仓库(Hosted Repository) 主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件。Nexus附带下面已经配置的宿主仓库: 3rd Party 这里存放的是某些在公共的Maven仓库中不存在的库,但依赖于第三方的仓库。这些依赖库可以是商业的,私有的库,例如Oracle JDBC驱动。 Releases

是你的组织将要发布的内部版本。这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍. Snapshots 是你的组织将要发布的内部块状。这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到 这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本. 2.虚拟仓库(Virtual Repository) Virutual repository作为不同类型仓库的适配器。当前,Nexus支持转换Maven 1仓库和Maven 2仓库。另外,你可以公开任何仓库格式为NuGet或OBR 仓库。例如,Maven 2仓库可以包含OSGi Bundles。a Maven 2 repository can contain OSGi Bundles, which can be exposed as a OSGi Bundle repository with the virtual repository Provider set to OBR. By default it ships with a Central M1 shadow repository that exposes the Central repository in Maven 1 format. 配置仓库 Repository窗口允许你建立,更新和删除不同的仓库使用Add,Delete和Trash按钮。Refresh按钮更新显示仓库和仓库组列表。正当在Nexus用户界面之行任何的delete操作,Trash按钮允许清空那些已删除组件的备份垃圾文件夹。 默认的,Repository窗口显示仓库配置和管理。在Trash按钮的右边允许切换仓库列表和浏览被Nexus管理的仓库

JAVA的各种变量类型的转换

JAVA的各种变量类型的转换 1 如何将字串 String 转换成整数 int? A. 有两个方法: 1).int i = Integer.parseInt([String]); i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = "" + i; 注: Double, Float, Long 转成字串的方法大同小异. java的各种变量类型的转换 integer to String : int i = 42; String str = Integer.toString(i); String str = "" + i double to String : String str = Double.toString(i); long to String : String str = Long.toString(l); float to String : String str = Float.toString(f); String to integer : str = "25";

int i = Integer.valueOf(str).intValue(); int i = Integer.parseInt(str); String to double : double d = Double.valueOf(str).doubleValue(); String to long : long l = Long.valueOf(str).longValue(); long l = Long.parseLong(str); String to float : float f = Float.valueOf(str).floatValue(); decimal to binary : int i = 42; String binstr = Integer.toBinaryString(i); decimal to hexadecimal : int i = 42; String hexstr = Integer.toString(i, 16); String hexstr = Integer.toHexString(i); hexadecimal (String) to integer : int i = Integer.valueOf("B8DA3",16).intValue(); int i = Integer.parseInt("B8DA3", 16); ASCII code to String int i = 64; String aChar = new Character((char)i).toString(); integer to ASCII code (byte) char c = 'A'; int i = (int) c; To extract Ascii codes from a Strin String test = "ABCD"; for ( int i = 0; i < test.length(); ++i ) {

接口使用说明文档

中国移动短信网关 SP端接口使用手册 China Mobile Shot Message Gateway Interface for SP Manual 作者:沈岗 日期:2004年1月 版本:V1.2

一、CMSMIF.CMPPApp 简要说明: 该类采用CMPP协议(V2.0)实现了SP端与移动短信网关的连接处理。 本类中,采用长连接方式与ISMG通讯。通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。参数C、T、N可通过属性配置。 消息发送时采用并发方式,即发送一条消息不等待网关回复确认,继续向网关发送短信,这样发送消息速度非常快,完全取决于网关的处理速度及网络速度。为避免消息丢失,同时采用了滑动窗口流量控制,窗口大小可通过属性设置。 消息接收、网络断开等采用事件触发方式,不需应用程序轮询,在此接口基础之上编程方便。 类中运用了多线程技术,如一条线程处理发送网络包,而另一条线程处理从网关上接收网络包,其他还有一些线程处理检测包、网络连接情况监测等,使程序思路明确、执行效率很高、运行非常稳定。 (一)属性 1.ActiveInterval 说明:检测包发送时间间隔,单位:毫秒。默认值为120000,即120秒。为上 述类说明中的C参数。 2.MaxNetworkPackSize 说明:与ISMG通讯时最大网络包大小,单位:字节。默认值为512Byte。 3.MaxRetryTimes 说明:网络超时最大重发次数,单位:次。默认值为3次。为类说明中的N。 4.OverTime 说明:网络包发送超时时间,单位:毫秒,超过此值还未收到回复则重发。默认值 为60000,即60秒。为类说明中的T。 5.QueueLength 说明:网络队列大小,单位:个,默认值为20。为类说明中的滑动窗口大小, 以控制发送流量。 (二)方法 1.ConnectToIsmg 方法说明: 连接到远程短信网关ISMG上,只有连接到远程短信网关上,才可进行短信收发操作。 在本操作中,自动初始化本地Socket,以连接到指定IP服务器的指定端口上。 声明原型:int ConnectToIsmg(string ServerIP,int Port,string SP_ID,string Secret,string SN) 参数说明: ServerIP:远程短信网关服务器的IP地址,如211.138.200.51 Port:远程短信网关服务器的端口号,如7890 SP_ID:企业服务代码

Maven配置

maven安装+maven本地仓库配置+maven镜像 1.安装maven前我们电脑上要确保安装了JDK1.6以上的版本 2.下载Maven Maven官网下载地址是https://www.sodocs.net/doc/7a3009314.html,/download.html 下载apache-maven-3.2.5后,解压到你想要解压的地方 我本地解压到D:\Program Series\Tools\Apache-maven这个路径下 3.然后在配置maven的环境变量: MAVEN_HOME D:\Program Series\Tools\Apache-maven\3.2.5 PATH %MAVEN_HOME%bin

配置好以后环境变量以后,打开cmd窗口,输入mvn -v,如果出现以下内容就表示安装成功。 4.然后我们给maven添加本地的仓库地址 解压后的maven目录下找到conf目录,其中就会有一个setting.xml文件 我本地的地址是D:\Program Series\Tools\Apache-maven\3.2.5\conf 然后通过编辑器找到第53行,把注释去掉,修改成自己想要设置的本地仓库地址就可以了。我本地设置在maven的安装目录同级目录下 mvn文件夹的名字可以随便取,但是一定要确保设置的仓库地址是有效的地址,因为maven 是不会自动创建这个mvn文件夹的。 5.实验一下刚才做的事情产生作用没有,控制台输入: mvnhelp:system 如果没有任何问题,执行完该命令之后,在D:\maven\repository下面就会多出很多文件,这些文件就是maven从中央仓库下载到本地仓库的文件,maven已经开始为我们工作了。Maven的安装配置和本地仓库地址的配置就已经结束了。 国内较快的maven镜像 国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用。 ====================国内OSChina提供的镜像,非常不错=================== CN OSChina Central https://www.sodocs.net/doc/7a3009314.html,/content/groups/public/ central ======================================================== OSChina Maven 库使用帮助 ==================其他maven仓库镜像========================== repo2

编写程序,将long型数据987654转换为字符串,将十进制数365转换为十六进制数表示的字符串

【实验内容】 编写程序,将long型数据987654转换为字符串,将十进制数365转换为十六进制数表示的字符串。【程序清单附件】 public class Ex17 { public static void main(String[] args) { long num=987654L; int i=365; System.out.println("Long类型转换为String:"+String.valueOf(num)); String HexI=DtoX(i); System.out.println(HexI); } //转换函数 public static String DtoX(int d) { String x=""; if(d<16){ x=change(d); } else{ int c; int s=0; int n=d; while(n>=16){ s++; n=n/16;

} String [] m=new String[s]; int i=0; do{ c=d/16; //判断是否大于10,如果大于10,则转换为A-F的格式m[i++]=change(d%16); d=c; }while(c>=16); x=change(d); for(int j=m.length-1;j>=0;j--){ x+=m[j]; } } return x; } //判断是否为10-15之间的数,如果是则进行转换 public static String change(int d){ String x=""; switch(d){ case 10: x="A"; break; case 11: x="B";

博客园API使用说明接口文档

卷号 卷内编号 密级 项目编号: 空指针播放器 错误!未指定书签。 Version: 1.0 项目承担部门:0015 撰写人(签名): xxx 完成日期: 2014-2-24 本文档使用部门:□主管领导■项目组 □客户(市场)■维护人员□用户评审负责人(签名): 评审日期:

目录 项目承担部门:0015 (1) 撰写人(签名): xxx (1) 评审负责人(签名): (1) 1.获取推荐信息 (3) 1.1 获取推荐电影信息 (3) 1.2 获取推荐电视剧信息............................................................ 错误!未定义书签。 1.3 获取推荐动漫信息 (4) 2.获取频道接口信息 (6) 2.1 获取电影列表 (6) 2.2 获取电视剧列表 (8) 2.3 获取动漫列表 (10) 2.4 获取综艺列表 (11) 2.5 获取电影列表 (12) 2.6 获取纪录片列表............................................................ 错误!未定义书签。 3.获取用户信息 (6) 3.1 获取登陆信息 (6) 3.2 获取注册信息 (20)

1.获取推荐信息 1.1 获取推荐电影列表 URL http://192.168.1.101:8080/NullPointerService/servlet/InitDataS ervlet 支持格式 json HTTP请求方式 Get 请求参数 无 返回结果 [{"Title":"ddd","SourceName":"Cnbeta","SubmitDate":"2012-3-3","Content":"Hello","Imag eUrl":"","PrevNews":"11242","NextNews":"11190","CommentCount":"20"},{"Title":"ddd"," SourceName":"Cnbeta","SubmitDate":"2012-3-3","Content":"Hello","ImageUrl":"","PrevNe ws":"11242","NextNews":"11190","CommentCount":"20"},{"Title":"ddd","SourceName":" Cnbeta","SubmitDate":"2012-3-3","Content":"Hello","ImageUrl":"","PrevNews":"11242","N extNews":"11190","CommentCount":"20"},{"Title":"ddd","SourceName":"Cnbeta","Submit Date":"2012-3-3","Content":"Hello","ImageUrl":"","PrevNews":"11242","NextNews":"1119 0","CommentCount":"20"},{"Title":"ddd","SourceName":"Cnbeta","SubmitDate":"2012-3-3","Content":"Hello","ImageUrl":"","PrevNews":"11242","NextNews":"11190","CommentCo unt":"20"}] 返回结果说明 无

Maven源配置教程

Maven安装及基本使用 1、安装maven首先到maven官网下载maven安装包, Maven下载地址, 下载apache-maven-3.3.9-bin.zip文件 > 由于当前系统为windows, 所以下载apache-maven-3.3.9-bin.zip文件; 如果您使用的系统为unix类系统请下载apache-maven-3.3.9-bin.tar.gz文件 > > 注: 由于maven是依赖于jdk的, 所以在安装maven前需要提前准备好jdk环境。jdk的安装方式不是本文的重点, 所以本文不进行展开说明了。 右键解压apache-maven-3.3.9-bin.zip文件到当前目录中即可 >如果您使用的为unix环境, 以CentOS为例, 使用以下命令进行解压 tar -zxvf apache-maven-3.3.9-bin.tar.gz 到此maven已经安装完成。 为了之后使用方便,所以需要将maven添加到环境变量中, 配置方式: 右键 "我的电脑" -> 选择 "属性" -> 选择 "高级系统设置" -> 选择 "高级" 标签页 -> 选择 "环境变量" 在新打开的窗口中的"系统变量"中新建变量名为"MAVEN_HOME", 变量值为 maven解压后的路径, 例如: E:-maven-3.3.9 然后编辑环境变量PATH, 在PATH的环境变量值的尾部添加";%MAVEN_HOME%", 一路确认后即添加成功。注: windows中多个环境变量的值需要用";"分隔 unix系统中环境变量的配置方式, 以CentOS为例: 使用以下方式为当前用户添加maven的环境变量打开~/.bashrc文件并在文件末尾添加以下内容 vim ~/.bashrc MAVEN_HOME=/opt/apache-maven-3.3.9 PATH=$PATH:$MAVEN_HOME/bin export MAVEN_HOME PATH 保存并退出, 并使用下面的命令使新添加的环境变量立即生效

long 类型

(1)--函数定义begin—————— create or replace function getlong(p_tname in varchar2, p_cname in varchar2, p_rowid in rowid)return varchar2as l_cursor integer default dbms_sql.open_cursor; l_n number; l_long_val varchar2(4000); l_long_len number; l_buflen number:=4000; l_curpos number:=0; begin dbms_sql.parse(l_cursor, 'select '|| p_cname ||' from '|| p_tname || ' where rowid = :x', dbms_sql.native); dbms_sql.bind_variable(l_cursor,':x', p_rowid); dbms_sql.define_column_long(l_cursor,1); l_n := dbms_sql.execute(l_cursor); if(dbms_sql.fetch_rows(l_cursor)>0)then dbms_sql.column_value_long(l_cursor, 1, l_buflen, l_curpos, l_long_val, l_long_len); end if; dbms_sql.close_cursor(l_cursor); return l_long_val; end getlong; ------end———————————————— (2)--以下函数调用 select ROWNUM, a.*, getlong('workflow_requestlog','REMARK', a.rowid) aa from workflow_requestlog a --where ROWNUM <= 608 order by a.requestid asc

文件访问接口设计.

课程设计说明书 设计名称:操作系统课程设计 题目:文件访问接口设计 学生姓名:余德威 专业:计算机科学与技术 班级: 13计算机1班 学号: 2013314111 指导教师:任朝晖 日期: 2015 年 9 月 18 日

课程设计任务书 一、设计题目 文件访问接口设计 二、目的与要求 本设计的目的是通过BIOS调用设计简单的文件访问接口,使学生掌握程序接口的设计方法。 要求学生在熟悉比BIOS、DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的文件访问接口,最后通过程序验证接口的正确性。三、设计内容 利用C语言设计,具体包括: 1、基本文件内容输入 2、基本文件内容输出 3、创建文件 4、打开文件 5、关闭文件 6、文件缓冲区管理 7、文件句柄管理 8、读顺序文件 9、写顺序文件 10、读随机文件 11、写随机文件 12、文本文件操作验证程序

程序,然后运行验证程序得到预期结果。 四、完成方式 独立完成:完成设计内容全部12个小项或至少3项以上。 五、具体要求 本设计的目的是通过BIOS调用设计简单的文件访问接口,使学生掌握程序接口的设计方法。 要求学生在熟悉比BIOS、DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的文件访问接口,最后通过程序验证接口的正确性。六、进度安排 依照教学计划,课程设计时间为:2周。 1.要求讲解、资料查找、系统分析,概要设计(2天) 2.系统详细设计、功能设计(2天) 3.算法实现、编程调试(5天) 4.功能演示、资料整理、课程设计说明书编写。(1天) 七、完成后应上交的材料 课程设计说明书纸质文档 八、总评成绩 指导教师签名日期年月日

(仓库管理)设置Maven组件库仓库

(仓库管理)设置Maven组件库仓库

设置Maven仓库 1. 介绍 Maven是Java开发者中流行的构建工具,Maven的好处之一是可以帮助减少构建应用程序时所依赖的软件构件的副本,Maven建议的方法是将所有软件构件存储于一个叫做repository的远程仓库中。 Maven会从https://www.sodocs.net/doc/7a3009314.html,中的公用仓库中同步构件,这个公用仓库下载缓慢、不稳定,并且不包含一些构件的最新版本,而且不能上传团队私有的构件。通过设置内部Maven仓库,团队可以更有好地利用Maven仓库的优势并且克服使用ibiblio上的仓库时的缺点。 本文着眼于Maven仓库工具应提供的一些功能,列出了选择Maven仓库工具的标准,说明了使用Artifactory设置Maven仓库的相关步骤。在Linux和Windows 中设置Maven仓库的过程是相同的,少数不同点在文中已经用高亮显示,本文列出了与这个Maven仓库的使用有关的POM文件的范例,用截图来向用户阐述如何设置Maven仓库,Maven和artifactory配置范例也有列出。 1.1 背景知识 本文假定读者熟悉以下的概念和技术: ●Maven 2 ●J2EE web 服务器部署过程(e.g. 在Tomcat中部署Web应用程序) ●XML 1.2 Maven仓库的目的 Maven仓库的目的是作为团队内所使用的所有软件构件的内部私有构件仓库,将Maven构件(jar和pom)存储到一个专门的Maven仓库比将它们存储到版本控制系统中更有优势,这是因为: ●构件(jar)是二进制文件,不属于版本控制系统,版本控制系统在处理文本文件方面比较好 ●保持较小的版本控制数据库 ●Checkout、update和其他版本控制的操作可以更快 1.3 建立内部私有仓库的优势: ●减少可能的版本冲突 ●减少首次构建时需要的手动干涉

eclipse maven 项目没有maven依赖仓库问题解决

eclipse maven 项目没有maven依赖仓库问题解决 之前是没有Maven Dependencies 这个文件夹仓库 解决办法: 添加箭头所指的配置到项目的classpath文件中

完整的接口解决方案说明书

XXXXXX信息科技股份有限公司

1引言 1.1编写目的 本文档为XX电信工程外部协作系统(以下简称外协系统)与电信工程施工单位内部系统(以下简称施工系统)接口技术解决方案,以此作为外协系统与施工系统实施接口的技术方案依据和项目设计标准。 1.2覆盖范围 XX电信工程外部协作系统项目组 施工系统接口开发技术组 1.3预期读者与阅读建议 XX电信企业信息化部 XX电信工程建设部 XXXX公司开发人员 施工系统开发人员

1.4文档约定 粗体正文表示强调内容 红色正文表示未完成或需要今后考虑的内容 蓝色正文表示待讨论内容 1.5术语与缩略语 1.6参考文献 (XXXX) 2概述 建设XX电信工程外部协作系统的目标,是在工程项目的管理、建设、使用和实施单位之间搭建起数据交换和协同工作的信息平台,延伸与拓展工程建设管理信息化的应用范围,实现通信工程建设过程的信息化管理,促进工程项目的管理部门、建设部门、实施部门和使用部门之间业务流程协调有序地开展,实现工程项目设计、施工、监理管理功能,将相关的设计、施工、监理单位纳入到工程建设管理中,完善工程项目建设过程管理体系,通过信息化推动管理的规范化,在信息化的应用过程中不断探索市场环境下工程建设管理的新思路和新方法。 根据工程部业务工作的实际情况,项目首先满足工程建设管理中应用最广泛、问题最突出的基本需求。 项目功能需求包括: ?建立工程外部协作系统与MSS等系统的接口; ?建立设计协作服务、监理协作服务、施工协作服务模块,为邮电设计院、电话监理公司和电信工程公司提供工程部所需的协作服务,保证工程建设实施流程的开展; ?在建立工程协作服务模块的基础上,建立工程外部协作系统与邮电设计院、电话监理公司、电信工程公司信息系统的接口,实现工程部与三家实施单位的信息交互与

C语言数据类型及转换

C语言的数据类型 C语言提供的数据结构,是以数据类型形式出现的。具体分类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。 本章将介绍基本类型中的整型、实型和字符型三种数据。 2.3 常量和变量 2.3.1 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 (2)实型常量 (3)字符常量。 (4)符号常量。 常量的类型,可通过书写形式来判别。 2.3.2 变量 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别。 在TC V2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。 (3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗?标识符命名的良好习惯──见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。 4.变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。

项目接口需求及设计说明文档

媒讯集团E A S项目 CTC与EAS接口 需求及设计说明书 文档作者: 创建日期:20X X-05-10 确认日期: 当前版本:1.0 拷贝数量:1 审批签字: 客户方: 实施方:

文档控制 修改记录 日期作者版本参考版本备注

目录 1.概述 (4) 1.1读者 (4) 1.2图例 (4) 1.3目的 (4) 二、业务现状 (5) 三、概要设计 (5) 3.1接口通讯方式 (5) 3.2通讯内容定义 (5) 3.3媒讯CTC系统提供接口使用范例 (5) 3.4金蝶EAS提供接口使用范例 (5) 3.5媒讯CTC系统提供接口服务地址 (7) 3.6金蝶EAS提供接口服务地址 (7) 3.7接口需求 (7) 四、详细设计 (8) 4.1XX EAS接口 (8)

1.概述 金蝶与用户及用户业务系统方通过多次讨论,制定了接口开发需求设计说明书,作为双方后续开发指引。 1.1读者 本文读者对象为业务管理人员、系统设计、开发人员、测试人员。 1.2图例 本文中如未进行特殊说明,各图标代表的含义如下: 表示一个活动; 表示动态的业务数据,如系统单据; 表示流程走向; 表示条件判断、流程分支; 表示静态的业务数据,如基础资料; 表示系统外一个手工处理活动; 表示系统外手工填制的单据; 表示当前系统之外的活动; 表示当前系统之外产生的业务数据。 1.3目的 本文档是媒讯CTC系统与EAS系统接口的需求及设计方案相关文档,可用于指导开发、测试工作和作为验收相关依据文档。

二、业务现状 待补充 三、概要设计 3.1接口通讯方式 金蝶EAS与媒讯CTC系统之间通讯采用WebService方式进行数据传输。 3.2通讯内容定义 对于记录型的大对象,在通讯时,采用String型的xml格式的参数进行传递。对于其他非记录型的对象,在通讯时,可采用非xml格式的参数进行传递,也可使用多个参数。具体格式,请参照每个接口的通讯用例说明。 3.3媒讯CTC系统提供接口使用范例 待补充。 3.4金蝶EAS提供接口使用范例 3.4.1规范说明 EAS通过webService接口与异构系统通信。EAS WebService全部是使用java编写的,其接口描述符合WSDL国际标准,其数据描述符合XSD 国际标准。 本次提供的接口除系统登录接口外,其他接口都需要调用登录接口,以便将登陆的SessionId信息放入到SOAP 的HEADER 报文中。 3.4.2使用示例 金蝶在EAS上发布WebService服务,提供wsdl文件供客户端下载,其他业务系统根据下载的wsdl文件,产生客户端。 建议使用Axis2来生成客户端代理。

数据类型转换

数据类型转换 各类整数之间的转换 C语言中的数分8位、16位和32位三种。属于8 位数的有:带符号 字符char,无符号字符unsigned char 。属于16位数的有:带符号整 数int,无符号整数unsigned int(或简写为unsigned),近指针。属 于32位数的有:带符号长整数long,无符号长整数 unsigned long, 远指针。 IBM PC是16位机,基本运算是16位的运算,所以,当8位数和16 位数进行比较或其它运算时,都是首先把8 位数转换成16位数。为了 便于按2的补码法则进行运算,有符号8位数在转换为16位时是在左边 添加8个符号位,无符号8位数则是在左边添加8个0。当由16位转换成 8位时,无论什么情况一律只是简单地裁取低8位,抛掉高8 位。没有 char或usigned char常数。字符常数,像"C",是转换为int以后存储 的。当字符转换为其它 16 位数(如近指针)时,是首先把字符转换为 int,然后再进行转换。 16位数与32位数之间的转换也遵守同样的规则。 注意,Turbo C中的输入/输出函数对其参数中的int和unsigned int不加区分。例如,在printf函数中如果格式说明是%d 则对这两种 类型的参数一律按2 的补码(即按有符号数)进行解释,然后以十进制 形式输出。如果格式说明是%u、%o、%x、%X,则对这两种类型的参数 一律按二进制 (即按无符号数) 进行解释,然后以相应形式输出。在 scanf函数中,仅当输入的字符串中含有负号时,才按2的补码对输入 数进行解释。 还应注意,对于常数,如果不加L,则Turbo C一般按int型处理。 例如,语句printf("%081x",-1L),则会输出ffffffff。如果省略1, 则输出常数的低字,即ffff。如果省略L,则仍会去找1个双字,这个 双字的就是int常数-1,高字内容是不确定的,输出效果将是在4个乱 七八糟的字符之后再跟ffff。 在Turbo C的头文件value.h中,相应于3 个带符号数的最大值, 定义了3个符号常数: #define MAXSHORT 0X7FFF #define MAXINT 0X7FFF #define MAXLONG 0X7FFFFFFFL 在Turbo C Tools中,包括3对宏,分别把8位拆成高4位和低4位, 把16位拆成高8位和低8位,把32位拆成高16位和低16位。 uthinyb(char value) utlonyb(char value) uthibyte(int value) utlobyte(int value) uthiword(long value) utloword(long valueu) 在Turbo C Tools中,也包括相反的3 个宏,它们把两个4位组成 一个8位,把两个8位组成一个16位,把两个16位组成一个32位。 utnybbyt(HiNyb,LoNyb) utwdlong(HiWord,Loword) utbyword(HiByte,LoByte)实数与整数之间的转换 Turbo C中提供了两种实数:float和 double。float 由32 位组 成,由高到低依次是:1个尾数符号位,8个偏码表示的指数位(偏值= 127),23个尾数位。double由64位组成,由高到低依次是:1 个尾数

相关主题