• SpringBoot整合WebService


    一、服务端

    本项目通过SpringBoot+Mybatis整合WebService,实现服务端接收客户端传入的数据并将其写入数据库等功能。

    1、导入依赖

    1. org.apache.cxf
    2. cxf-spring-boot-starter-jaxws
    3. 3.2.5
    4. org.apache.cxf
    5. cxf-rt-transports-http
    6. 3.3.6

    2、建一个pojo包存放实体类User

    1. import lombok.AllArgsConstructor;
    2. import lombok.Data;
    3. @Data
    4. @AllArgsConstructor
    5. public class User {
    6. private Integer id;
    7. private String userId;
    8. private String userName;
    9. }

    3、UserDao 处理数据

    1. package cn.edu.usts.sbmpservice.dao;
    2. import cn.edu.usts.sbmpservice.pojo.User;
    3. import org.apache.ibatis.annotations.Mapper;
    4. import org.springframework.stereotype.Repository;
    5. @Mapper
    6. @Repository
    7. public interface UserDao {
    8. int addUser(User user);
    9. User queryUser(Integer id);
    10. }

    4、建一个service包存放服务类 UserService

    1. package cn.edu.usts.sbmpservice.service;
    2. import cn.edu.usts.sbmpservice.pojo.User;
    3. import javax.jws.WebParam;
    4. import javax.jws.WebService;
    5. import java.text.ParseException;
    6. @WebService(name = "UserService", // 暴露服务名称
    7. targetNamespace = "http://service.sbmpservice.usts.edu.cn"// 命名空间,一般是接口的包名倒序
    8. )
    9. public interface UserService {
    10. int addUser(User user);
    11. User queryUser(Integer id);
    12. }

    UserServiceImpl接口实现类

    1. package cn.edu.usts.sbmpservice.service.impl;
    2. import cn.edu.usts.sbmpservice.dao.UserDao;
    3. import cn.edu.usts.sbmpservice.dao.YljgjxcDao;
    4. import cn.edu.usts.sbmpservice.pojo.User;
    5. import cn.edu.usts.sbmpservice.pojo.Yljgjxc;
    6. import cn.edu.usts.sbmpservice.service.UserService;
    7. import cn.edu.usts.sbmpservice.utils.util;
    8. import org.springframework.beans.factory.annotation.Autowired;
    9. import javax.jws.WebService;
    10. import java.text.ParseException;
    11. import java.text.SimpleDateFormat;
    12. import java.util.Date;
    13. import java.util.List;
    14. //@Component
    15. @WebService(serviceName = "UserService", // 与接口中指定的name一致
    16. targetNamespace = "http://service.sbmpservice.usts.edu.cn", // 与接口中的命名空间一致,一般是接口的包名倒
    17. endpointInterface = "cn.edu.usts.sbmpservice.service.UserService"// 接口地址
    18. )
    19. public class UserServiceImpl implements UserService {
    20. @Autowired
    21. private UserDao userDao;
    22. @Override
    23. public int addUser(User user ){
    24. System.out.println("addUser");
    25. return userDao.addUser(user);
    26. }
    27. @Override
    28. public User queryUser(Integer id){
    29. System.out.println("queryUser"+" "+id);
    30. User user = userDao.queryUser(id);
    31. System.out.println(user);
    32. return userDao.queryUser(id);
    33. }
    34. }

    5、在resources目录下建立一个mapper文件夹

    1. "1.0" encoding="ISO-8859-1"?>
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. "cn.edu.usts.sbmpservice.dao.UserDao">
    5. "addUser" parameterType="User">
    6. insert into user.user(userId,userName) values (#{userId},#{userName})

    6、配置数据库

    将application文件后缀改成yml格式,然后根据自己的情况配置数据库和端口号

    1. mybatis:
    2. type-aliases-package: cn.edu.usts.sbmpservice.pojo
    3. mapper-locations: classpath:mapper/*.xml
    4. spring:
    5. datasource:
    6. username: root
    7. password: root
    8. url: jdbc:mysql://localhost:3306?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    9. server:
    10. port: 8081

    7、配置并发布WebService

    新建一个config目录,存放配置文件 webserviceConfig.java

    1. package cn.edu.usts.sbmpservice.config;
    2. import cn.edu.usts.sbmpservice.service.UserService;
    3. import cn.edu.usts.sbmpservice.service.impl.UserServiceImpl;
    4. import org.apache.cxf.Bus;
    5. import org.apache.cxf.bus.spring.SpringBus;
    6. import org.apache.cxf.jaxws.EndpointImpl;
    7. import org.apache.cxf.transport.servlet.CXFServlet;
    8. import org.springframework.boot.web.servlet.ServletRegistrationBean;
    9. import org.springframework.context.annotation.Bean;
    10. import org.springframework.context.annotation.Configuration;
    11. import javax.xml.ws.Endpoint;
    12. @Configuration
    13. public class StartClas {
    14. @Bean(name = Bus.DEFAULT_BUS_ID)
    15. public SpringBus springBus() {
    16. return new SpringBus();
    17. }
    18. @Bean(name = "wsBean")
    19. public ServletRegistrationBean dispatcherServlet() {
    20. ServletRegistrationBean wbsServlet = new ServletRegistrationBean(new CXFServlet(), "/ws/*");
    21. return wbsServlet;
    22. }
    23. @Bean
    24. public UserService userService() {
    25. return new UserServiceImpl();
    26. }
    27. @Bean
    28. public Endpoint endpointPurchase(SpringBus springBus, UserService userService) {
    29. EndpointImpl endpoint = new EndpointImpl(springBus(), userService());
    30. endpoint.publish("/api");
    31. System.out.println("服务发布成功!地址为:http://localhost:8081/ws/api?wsdl");
    32. return endpoint;
    33. }
    34. }

    8、发布WebService服务

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

     

  • 相关阅读:
    8 Operators
    pip修改位于用户目录下的缓存目录
    Springboot新增文章
    JAVA设计模式--创建型模式--单例模式
    Win10配置IIS与 C#/.net项目的发布与IIS部署
    网络编程 tcp/ip下的c/s模型介绍
    适用于小型企业的远程控制软件分享!
    广西建筑模板的材质类型和特点有哪些?
    hadoop之yarn
    10个月1000 Star、62位贡献者,我们都做对了什么?| 2023年度总结
  • 原文地址:https://blog.csdn.net/kay523393/article/details/126595985