SSM框架整合笔记(二)Druid和Webservice配置

3 篇文章 0 订阅
3 篇文章 0 订阅

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项目使用CXF配置webservice。
  • ssm项目中配置druid数据库连接池,SQL监控。

一、使用CXF配置webservice

0. pom.xml

pom.xml中添加依赖如下:

<!--<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

web.xml中添加配置如下:

  <!--============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

spring-config.xml中添加配置如下:

    <!-- 使用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:ThirdWebservice.java,示例代码如下:

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类:ThirdWebserviceImpl.java,示例代码如下:

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接口:

双击Request 1,填入参数,点击运行按钮,结果如下,调用成功:

二、配置druid数据库连接池,SQL监控

0. pom.xml

pom.xml中添加依赖如下:

<!--<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

web.xml中添加配置如下:

  <!-- ============阿里巴巴数据库连接池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

spring-config.xml中添加配置,示例代码如下:

<!-- 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值