webservice+cxf+spring+mysql+注解_使用CXF开发WebService程序的总结(七):Spring+CXF+Mybatis+Mysql共同打造的服务端示例...

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.lonely.webservice

ws_parent

0.0.1-SNAPSHOT

pom

4.1.7.RELEASE

3.4.1

1.3.0

4.0.0

5.1.32

1.0.9

1.2

2.5

2.0

1.7.10

1.1.7

1.4

org.springframework

spring-core

${spring-version}

org.springframework

spring-beans

${spring-version}

org.springframework

spring-tx

${spring-version}

org.springframework

spring-context

${spring-version}

org.springframework

spring-context-support

${spring-version}

org.springframework

spring-web

${spring-version}

org.springframework

spring-webmvc

${spring-version}

org.springframework

spring-aop

${spring-version}

org.springframework

spring-aspects

${spring-version}

org.springframework

spring-jdbc

${spring-version}

org.apache.cxf

cxf-core

3.1.6

org.apache.cxf

cxf-rt-frontend-jaxws

3.1.6

org.apache.cxf

cxf-rt-transports-http-jetty

3.1.6

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

${mybatis.spring.version}

com.github.pagehelper

pagehelper

${pagehelper.version}

mysql

mysql-connector-java

${mysql.version}

com.alibaba

druid

${druid.version}

commons-dbcp

commons-dbcp

${dbcp.version}

jstl

jstl

${jstl.version}

javax.servlet

servlet-api

${servlet-api.version}

provided

javax.servlet

jsp-api

${jsp-api.version}

provided

org.slf4j

slf4j-api

${slf4j.api.version}

ch.qos.logback

logback-classic

${logback.version}

ch.qos.logback

logback-core

${logback.version}

org.apache.maven.plugins

maven-compiler-plugin

1.8

1.8

UTF-8

ws_server

ws_client

ws_ssm_server

2. 新建一个maven子工程  ws_ssm_server

2.1 新建一个子工程,打包方式为 war格式,因为spring的很多依赖有重复,经整理后 其pom文件如下:

4.0.0

com.lonely.webservice

ws_parent

0.0.1-SNAPSHOT

ws_ssm_server

war

org.springframework

spring-context-support

org.springframework

spring-webmvc

org.springframework

spring-aspects

org.springframework

spring-jdbc

org.apache.cxf

cxf-core

org.apache.cxf

cxf-rt-frontend-jaxws

org.apache.cxf

cxf-rt-transports-http-jetty

org.mybatis

mybatis

org.mybatis

mybatis-spring

mysql

mysql-connector-java

commons-dbcp

commons-dbcp

org.slf4j

slf4j-api

ch.qos.logback

logback-classic

ch.qos.logback

logback-core

2.2 spring整合cxf

2.2.1 在web.xml中添加 cxf 拦截器处理器配置,以及 spring容器启动创建配置

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

forceEncoding

true

encoding

UTF-8

characterEncoding

UTF-8

encodingFilter

/*

contextConfigLocation

classpath:spring/application.xml

org.springframework.web.context.ContextLoaderListener

cxfServlet

org.apache.cxf.transport.servlet.CXFServlet

cxfServlet

/cxf/*

/index.jsp

2.2.2 在resource目录下 创建文件夹 spring,在里面创建spring与cxf集成的配置文件 :  spring-cxf.xml

这里注意要添加一个 jaxws的命名空间,以及引入两个 cxf中的 xml配置

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

2.2.3  jaxws:endpoint 中的 implementor:对应的服务接口的实现类,而 address :对应发布的接口路径,注意在实际的接口实现类上 使用注解 @Component让spring 扫描发现管理,给个别名用于在了  implementor属性上

UserService

package com.lonely.service;

import java.util.List;

import java.util.Map;

import javax.jws.WebService;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import com.lonely.adapter.MapConvertAdapter;

import com.lonely.model.Clazz;

import com.lonely.model.User;

@WebService

public interface UserService {

/**

* 根据班级信息返回该班级的学生列表

*

* @param clazz

* @return

*/

List findUsersByClass(Clazz clazz);

/**

* 查看所有班级信息以及班级下的所有学生

*

* @return

*/

@XmlJavaTypeAdapter(value = MapConvertAdapter.class)

Map> findAll();

}UserServiceImpl

package com.lonely.service.impl;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.jws.WebService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import com.lonely.dao.UserDao;

import com.lonely.model.Clazz;

import com.lonely.model.User;

import com.lonely.service.UserService;

@Component("userService")

@WebService

public class UserServiceImpl implements UserService {

@Autowired

private UserDao userDao;

@Override

public List findUsersByClass(Clazz clazz) {

return this.userDao.findUsersByClass(clazz);

}

@Override

public Map> findAll() {

List clazzList = this.userDao.findAll();

if (clazzList != null && clazzList.size() != 0) {

Map> map = new HashMap<>();

for (Clazz clazz : clazzList) {

map.put(clazz.getClassName(), clazz.getUsers());

}

return map;

}

return null;

}

}

2.3 spring整合mybatis

2.3.1 在spring目录下,添加 spring与mybatis集成的配置 : spring-datasource.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">

dialect=mysql

2.3.2 在  basePackage 对应的路径下 编写 dao层的接口

package com.lonely.dao;

import java.util.List;

import com.lonely.model.Clazz;

import com.lonely.model.User;

public interface UserDao {

List findUsersByClass(Clazz clazz);

List findAll();

}2.3.3 在 mapperLocations 对应的路径下 编写  mybatis的sql操作的xml文件,这里比如如下:

SELECT * from user u where u.classId = #{classId}

SELECT

*

FROM

clazz c

JOIN USER u ON c.classId = u.classId

2.3.4 在这里 使用了 mybatis的一对多,所以在  Clazz实体类上 多加了一个属性  List users;

2.3.5 忘了 前面还需要一个 jdbc.properties

## jdbc环境配置

jdbc.driverClassName = com.mysql.jdbc.Driver

jdbc.jdbcUrl = jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&allowMultiQueries=true

jdbc.jdbcUsername = root

jdbc.jdbcPassword = xxx

#jdbc.logAbandoned = false

#jdbc.initialSize = 20

#jdbc.maxActive =1000

#jdbc.maxIdle=100

#jdbc.maxWait = 1000

#jdbc.minEvictableIdleTimeMillis = 300000

#jdbc.minIdle = 10

#jdbc.removeAbandoned = true

#jdbc.removeAbandonedTimeout = 3000

#jdbc.timeBetweenEvictionRunsMillis = 10000

#jdbc.testOnBorrow = false

#jdbc.testWhileIdle = true

#jdbc.validSql = select now()

2.4 spring+cxf+mybatis

2.4.1 在spring目录下 创建一个spring的核心文件  application.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

2.4.2  至此,spring+cxf+mybatis整合完毕,整个项目结构如下

fca43a6edac19706210c89928538670f.png

3a80606d1d67ff4c724ad2a035d8a962.png

3.  使用wsdl2java工具生成客户端代码,跟原来的ws_client类似,直接测试即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值