美文网首页
Spring Boot Consul TongWeb适配

Spring Boot Consul TongWeb适配

作者: 天生小包 | 来源:发表于2023-02-01 16:28 被阅读0次
    一、登录控制台

    http://36.158.226.120:9060/console

    二、排除默认的Tomcat


    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
    <exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
    </exclusions>
    </dependency>

    三、打war包

    <packaging>war</packaging>
    <build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
    <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>

    <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
    </plugin>
    </plugins>
    </build>

    四、重写启动类

    重写启动类,继承 SpringBootServletInitializer 类,重写 configure 方法,否则无法检测到启动类。
    public class StandardSystemApplication extends SpringBootServletInitializer
    {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(StandardSystemApplication.class);
    }
    public static void main(String[] args)
    {
    SpringApplication.run(StandardSystemApplication.class, args);
    System.out.println("(♥◠‿◠)ノ゙ 系统模块启动成功 ლ(´ڡ`ლ)゙ ");
    }
    }

    五、注册

    如果使用的是基于 Consul 的微服务架构,除了上述步骤,还需要添加以下配置类,将服务注册至 Consul 注册中心,否则服务虽然正常启动,没有任何报错信息,但是并没有注册到 Consul。

    package com.gientech.jep.service.sys.conf;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.ApplicationArguments;
    import org.springframework.boot.ApplicationRunner;
    import org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistration;
    import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration;
    import org.springframework.context.annotation.Configuration;

    import javax.management.MBeanServer;
    import javax.management.ObjectName;
    import javax.management.Query;
    import java.lang.management.ManagementFactory;
    import java.util.Set;

    /**

    • ConsulApplicationRunner

    • @author houyinke

    • @date 2022/12/11 11:40
      */
      @Configuration
      public class ConsulApplicationRunner implements ApplicationRunner {

      @Autowired(required = false)
      private ConsulAutoServiceRegistration serviceRegistration;

      @Autowired(required = false)
      private ConsulAutoRegistration registration;

      @Value("${server.port}")
      Integer port;

      @Override
      public void run(ApplicationArguments args) {
      if (registration != null && port != null) {
      Integer tomcatPort = port;
      try {
      tomcatPort = new Integer(getTomcatPort());
      } catch (Exception e) {
      e.printStackTrace();
      }
      registration.getService().setPort(tomcatPort);
      serviceRegistration.start();
      }
      }

      /**

      • 获取外部tomcat端口
        /
        public String getTomcatPort() throws Exception {
        MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
        Set< ObjectName > objectNames = beanServer.queryNames(new ObjectName("
        :type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
        String port = objectNames.iterator().next().getKeyProperty("port");
        return port;
        }
        }
    六、一个Web容器下部署多个服务

    如果想通过在一个 TongWeb 下部署多个服务,有两种方案:

    1. 采用多通道结合多虚拟主机实现多服务部署;
    2. 增加多个域(具体操作参考官方安装部署手册);
      • 多通道


      image.png

    • 多虚拟主机


    image.png
    七、通过 build
    image.png
    八、依赖TongWeb 7.x

    1、删除 TongWeb/lib/validation-api.jar,加入validation-api-2.0.1.Final到lib
    2、项目依赖TongWeb/lib,IDEA。

    image.png

    5.3.2 微前端
    1、 将build完成的VUE项目拷贝到文件夹中

    2、 创建文件夹WEB-INF

    3、 进入WEB-INF文件夹创建文件web.xml

    内容如下:
    <?xml version="1.0"?>
    <web-app>
    <error-page>
    <error-code>404</error-code>
    <location>/index.html</location>
    </error-page>
    </web-app>

    4、 进行打包
    输入jar -cvf sys.war * 进行打包。

    打包完成之后会产生如下文件,将sys.war上传到TngWeb即可开始部署前端。

    相关文章

      网友评论

          本文标题:Spring Boot Consul TongWeb适配

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