美文网首页JavaWeb
SSM框架整合笔记(二)Druid和Webservice配置

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

作者: 不知名码农 | 来源:发表于2019-02-28 00:47 被阅读1次

    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

    <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

    相关文章

      网友评论

        本文标题:SSM框架整合笔记(二)Druid和Webservice配置

        本文链接:https://www.haomeiwen.com/subject/gyrcuqtx.html