SSM框架整合笔记(二)Druid和Webservice配置
前言
WebService
Web Service 是自包含(self-contained)、使用开放协议进行通信的应用程序组件。功能:实现应用程序之间的通信;将应用程序转换为网络应用程序;使用XML来编解码数据,并使用SOAP来传输数据。
元素:
- 使用SOAP(简单对象访问协议):是用于交换XML编码信息的轻量级协议;
- WSDL(Web Service 描述语言):用于描述Web Service及函数、参数和返回值,因为是基于XML的,因此WSDL既是机器可阅读的,又是人可阅读的;
- UDDI:目的是为电子商务建立标准,是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
- XML是Web Service的基础;
SOAP:是一种使应用程序有能力通过 HTTP 交换信息的基于 XML 的简易协议。
WSDL:是基于 XML 的用来描述 Web services 以及如何访问它们的一种语言,可描述 web service,连同用于 web service 的消息格式和协议的细节。
Druid
Druid是Java中的数据库连接池。Druid能够提供强大的监控和扩展功能。
相关文章
- SSM框架整合笔记(一)详细注释https://www.jianshu.com/p/1239a0bd17ec
本文内容
- ssm项目使用CXF配置webservice。
- ssm项目中配置druid数据库连接池,SQL监控。
一、使用CXF配置webservice
0. pom.xml
<code>pom.xml</code>中添加依赖如下:
<!--<properties>-->
<cxf.version>3.1.6</cxf.version>
<!--</properties>-->
<!-- cxf webservice -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
1. web.xml
<code>web.xml</code>中添加配置如下:
<!--============Webservice配置start============-->
<!--在Web.xml中配置CXF监听器 -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<!-- 注意:<servlet-mapping>下的<url-pattern>指明了服务访问地址的形式,"/*"代表URL地址中,包名称后直接跟服务endpoint地址,
若指明<url-pattern>为/webservice/*,则URL地址为“包名webservice/endpoint?wsdl” -->
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
<!--============Webservice配置end============-->
2. spring-config.xml
<code>spring-config.xml</code>中添加配置如下:
<!-- 使用CXF方式配置webservice接口 -->
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<!--<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>-->
<!-- 自动扫描webService -->
<context:component-scan base-package="com.weyoung.webservice"/>
<!-- 定义webservice的发布接口 -->
<jaxws:endpoint implementor="#thirdService" address="/testService"/>
3. ThirdWebservice.java
添加interface:<code>ThirdWebservice.java</code>,示例代码如下:
package com.weyoung.webservice;
import javax.jws.WebService;
/**
* @ClassName ThirdWebservice
* @Description 对外发布webservice接口
* @Author Mr.wang
* @Date 2019/2/26 0:38
* @Version 1.0
**/
@WebService
public interface ThirdWebservice {
/**
* 获取第三方请求
* @param code
* @param loginData
* @param intoData
* @return
* @throws Exception
*/
String getThirdPartyRequest(String code, String loginData, String intoData) throws Exception;
}
4. ThirdWebserviceImpl.java
添加java类:<code>ThirdWebserviceImpl.java</code>,示例代码如下:
package com.weyoung.webservice;
import org.springframework.stereotype.Component;
import javax.jws.WebService;
/**
* @ClassName ThirdWebserviceImpl
* @Description 对外发布webservice接口
* @Author Mr.wang
* @Date 2019/2/26 0:45
* @Version 1.0
**/
@Component("thirdService")
@WebService
public class ThirdWebserviceImpl implements ThirdWebservice {
@Override
public String getThirdPartyRequest(String code, String loginData, String intoData) throws Exception {
String result;
switch (code) {
case "WS0001":
result = "WS0001" + loginData + intoData;
break;
case "WS0002":
result = "WS0001" + loginData + intoData;
break;
default:
result = "OTHER" + loginData + intoData;
break;
}
return result;
}
}
测试接口
访问地址:http://localhost:8080/ssm-note/webservice/ ,原访问项目后加"webservice/",访问结果如下:
点击蓝色链接后如下:
使用soapUI测试webservice接口:
双击<code>Request 1</code>,填入参数,点击运行按钮,结果如下,调用成功:
二、配置druid数据库连接池,SQL监控
0. pom.xml
<code>pom.xml</code>中添加依赖如下:
<!--<properties>-->
<druid.version>1.0.25</druid.version>
<log4j.version>1.2.14</log4j.version>
<!--</properties>-->
<!--druid==>阿里巴巴数据库连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
1. web.xml
<code>web.xml</code>中添加配置如下:
<!-- ============阿里巴巴数据库连接池start============ -->
<filter>
<filter-name>druidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>druidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>druidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>druidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- ============阿里巴巴数据库连接池end============ -->
2. spring-config.xml
<code>spring-config.xml</code>中添加配置,示例代码如下:
<!-- MySQL数据源配置-->
<bean id="MySQLDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.mysql.driver}"/>
<property name="url" value="${jdbc.mysql.url}"/>
<property name="username" value="${jdbc.mysql.username}"/>
<property name="password" value="${jdbc.mysql.password}"/>
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${jdbc.initialSize}"/>
<property name="minIdle" value="${jdbc.minIdle}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="${jdbc.maxWait}"/>
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}"/>
<property name="testWhileIdle" value="${jdbc.testWhileIdle}"/>
<!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
<!-- 配置提交方式,默认就是true,可以不用配置 -->
<property name="defaultAutoCommit" value="${jdbc.defaultAutoCommit}"/>
<!-- 验证连接有效与否的SQL,不同的数据配置不同 -->
<!--<property name="validationQuery" value="select 1 " />-->
<property name="filters" value="stat" />
<property name="proxyFilters">
<list>
<ref bean="logFilter" />
</list>
</property>
</bean>
<bean id="logFilter" class="com.alibaba.druid.filter.logging.Log4jFilter">
<property name="statementExecutableSqlLogEnable" value="false" />
</bean>
测试Druid
访问地址:http://localhost:8080/ssm-note/druid/
访问后如下:
分享
欢迎扫描下方二维码,关注weyoung公众号,一起交流学习~~
个人微信公众号更多联系方式
平台 | 链接 |
---|---|
预览项目: | https://nelucifer.gitee.io/ |
个人微信公众号: | weyoung |
segmentfault: | https://segmentfault.com/u/nelucifer |
CSDN: | https://me.csdn.net/wlx001 |
简书: | https://www.jianshu.com/u/99211cc23788 |
掘金: | https://juejin.im/user/59b08c575188250f4850e80e |
网友评论