实现WebService接口的发布以及调用
一、服务端代码开发
1、pom依赖
2、接口类
3、接口实现类
4、webservice配置文件
2、客户端开发
(1)pom依赖
(2)封装客户端方法clientUtil
(3)调用接口类
(4)运行结果
问题描述
当要对用户输入的参数进行校验时,可以用javax.validation.Validation包下的注解进行验证,实现简单,并且是基于JSR-303标准的。
一、H2数据库介绍
常用的开源数据库有:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2和HSQLDB类似,十分适合作为嵌入式数据库使用,而其它的数据库大部分都需要安装独立的客户端和服务器端。
H2的优势:
1、h2采用纯Java编写,因此不受平台的限制。
2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
3、h2提供了一个十分方便的web控制台用于操作和管理数据库内容。
在写DAO层的单元测试时,我们往往会遇到一个问题,测试用例所依赖的数据库数据被修改或删除了,或者在一个新的环境下所依赖的数据库不存在,导致单元测试无法通过。在这种情况下,使用H2内存数据库来模拟数据库环境是一个很好的解决方案。
View Detailssagan\sagan-client\webpack.config.js
1 2 3 4 5 6 7 |
{ test: /\.(woff2|woff|eot|ttf|svg)$/, loader: 'file-loader', options: { name: 'fonts/[name].[ext]', }, }, |
View Details
https://plugins.gradle.org/plugin/com.gorylenko.gradle-git-properties
View Details1.value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value="page",则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据。
2.required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。
3.defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties['java.vm.version']}"
JDK7 的 HashMap
JDK7 的 HashMap 的存储结构其实就是哈希表的存储结构(由数组与链表结合组成,称为链表的数组)。
JDK8 的 HashMap
当链表长度超过阈值(TREEIFY_THRESHOLD) 8,table 的长度大于 64如果小于 64,就通过扩容的方式来解决,避免红黑树结构化链表转换为红黑树。
HashMap 在高并发下会出现链表环,从而导致程序出现死循环。高并发下避免 HashMap 出问题的方法有两种,一是使用 HashTable,二是使用 Collections.syncronizedMap。但是这两种方法的性能都能差。因为这两个在执行读写操作时都是将整个集合加锁,导致多个线程无法同时读写集合。高并发下的 HashMap 出现的问题就需要 ConcurrentHashMap 来解决了。
View Details
1 2 3 4 5 6 |
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </dependency> |
1 |
import com.alibaba.fastjson.JSON; |
1 2 3 4 5 6 7 |
String bodyStr = "[{\"DRUG_CODE\":\"5013034DP0\",\"PACKAGE_UNITS\":\"包\",\"number_per_package\":\"1\",\"DRUG_SPEC\":\"15g沪蔡同德\",\"QUANTITY\":\"601\",\"drug_units\":\"包\",\"PACKAGE_SPEC\":\"15g\",\"dispensary\":\"36000201\",\"extend_params\":\"\\\"\\\"\",\"DEPT_NAME\":\"药材科门诊草药房\",\"DEPT_CODE\":\"36000201\"}]"; JSONArray array = JSON.parseArray(bodyStr); Map<String, Object> bodMap = JSON.parseObject(array.getString(0)).getInnerMap(); System.out.println("drug_units:" + bodMap.get("drug_units")); System.err.println(bodMap); |
View Details