JavaWeb

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

2019-02-28  本文已影响1人  程序员七平

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

前言

WebService

  Web Service 是自包含(self-contained)、使用开放协议进行通信的应用程序组件。功能:实现应用程序之间的通信;将应用程序转换为网络应用程序;使用XML来编解码数据,并使用SOAP来传输数据。
元素:

SOAP:是一种使应用程序有能力通过 HTTP 交换信息的基于 XML 的简易协议。
WSDL:是基于 XML 的用来描述 Web services 以及如何访问它们的一种语言,可描述 web service,连同用于 web service 的消息格式和协议的细节。

Druid

  Druid是Java中的数据库连接池。Druid能够提供强大的监控和扩展功能。

相关文章

本文内容

一、使用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/",访问结果如下:

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
上一篇 下一篇

猜你喜欢

热点阅读