本项目通过SpringBoot+Mybatis整合WebService,实现服务端接收客户端传入的数据并将其写入数据库等功能。
-
-
-
org.apache.cxf -
cxf-spring-boot-starter-jaxws -
3.2.5 -
-
-
org.apache.cxf -
cxf-rt-transports-http -
3.3.6 -
- import lombok.AllArgsConstructor;
- import lombok.Data;
-
- @Data
- @AllArgsConstructor
- public class User {
- private Integer id;
- private String userId;
- private String userName;
-
- }
-
- package cn.edu.usts.sbmpservice.dao;
- import cn.edu.usts.sbmpservice.pojo.User;
- import org.apache.ibatis.annotations.Mapper;
- import org.springframework.stereotype.Repository;
-
- @Mapper
- @Repository
- public interface UserDao {
- int addUser(User user);
- User queryUser(Integer id);
- }
-
- package cn.edu.usts.sbmpservice.service;
- import cn.edu.usts.sbmpservice.pojo.User;
- import javax.jws.WebParam;
- import javax.jws.WebService;
- import java.text.ParseException;
-
- @WebService(name = "UserService", // 暴露服务名称
- targetNamespace = "http://service.sbmpservice.usts.edu.cn"// 命名空间,一般是接口的包名倒序
- )
- public interface UserService {
-
- int addUser(User user);
- User queryUser(Integer id);
-
- }
-
UserServiceImpl接口实现类
- package cn.edu.usts.sbmpservice.service.impl;
- import cn.edu.usts.sbmpservice.dao.UserDao;
- import cn.edu.usts.sbmpservice.dao.YljgjxcDao;
- import cn.edu.usts.sbmpservice.pojo.User;
- import cn.edu.usts.sbmpservice.pojo.Yljgjxc;
- import cn.edu.usts.sbmpservice.service.UserService;
- import cn.edu.usts.sbmpservice.utils.util;
- import org.springframework.beans.factory.annotation.Autowired;
- import javax.jws.WebService;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
-
- //@Component
- @WebService(serviceName = "UserService", // 与接口中指定的name一致
- targetNamespace = "http://service.sbmpservice.usts.edu.cn", // 与接口中的命名空间一致,一般是接口的包名倒
- endpointInterface = "cn.edu.usts.sbmpservice.service.UserService"// 接口地址
- )
- public class UserServiceImpl implements UserService {
-
- @Autowired
- private UserDao userDao;
-
- @Override
- public int addUser(User user ){
-
- System.out.println("addUser");
-
- return userDao.addUser(user);
- }
- @Override
- public User queryUser(Integer id){
- System.out.println("queryUser"+" "+id);
- User user = userDao.queryUser(id);
- System.out.println(user);
- return userDao.queryUser(id);
- }
-
- }
-
- "1.0" encoding="ISO-8859-1"?>
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"cn.edu.usts.sbmpservice.dao.UserDao"> -
"addUser" parameterType="User"> - insert into user.user(userId,userName) values (#{userId},#{userName})
-
-
- select * from user.user where userId = #{userId}
-
-
6、配置数据库
将application文件后缀改成yml格式,然后根据自己的情况配置数据库和端口号
- mybatis:
- type-aliases-package: cn.edu.usts.sbmpservice.pojo
- mapper-locations: classpath:mapper/*.xml
- spring:
- datasource:
- username: root
- password: root
- url: jdbc:mysql://localhost:3306?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
- server:
- port: 8081
7、配置并发布WebService
新建一个config目录,存放配置文件 webserviceConfig.java
- package cn.edu.usts.sbmpservice.config;
-
- import cn.edu.usts.sbmpservice.service.UserService;
- import cn.edu.usts.sbmpservice.service.impl.UserServiceImpl;
- import org.apache.cxf.Bus;
- import org.apache.cxf.bus.spring.SpringBus;
- import org.apache.cxf.jaxws.EndpointImpl;
- import org.apache.cxf.transport.servlet.CXFServlet;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- import javax.xml.ws.Endpoint;
-
- @Configuration
- public class StartClas {
-
- @Bean(name = Bus.DEFAULT_BUS_ID)
- public SpringBus springBus() {
- return new SpringBus();
- }
-
- @Bean(name = "wsBean")
- public ServletRegistrationBean dispatcherServlet() {
- ServletRegistrationBean wbsServlet = new ServletRegistrationBean(new CXFServlet(), "/ws/*");
- return wbsServlet;
- }
-
- @Bean
- public UserService userService() {
- return new UserServiceImpl();
- }
-
- @Bean
- public Endpoint endpointPurchase(SpringBus springBus, UserService userService) {
- EndpointImpl endpoint = new EndpointImpl(springBus(), userService());
- endpoint.publish("/api");
- System.out.println("服务发布成功!地址为:http://localhost:8081/ws/api?wsdl");
- return endpoint;
-
-
- }
- }
-
-
8、发布WebService服务

浏览器访问:http://localhost:8086/server/webservice/api?wsdl
