Skip to content
✍️shf🕐2025-07-29T00:00:00.000Z 🔗 INIT PROJECT

初始化后端工程

后端工程使用maven多模块方式来组织代码工程,应用模块可以按照微服务的拆分方法进行拆分。为了避免打包部署的成本,将有依赖关系的模块尽量聚合在同一个代码工程中,在打包部署时可以在同一个工程中打包所有应用;同一个应用中心同一个研发团队尽量避免使用私有仓库来管理依赖,降低打包部署和开发成本。

拉取脚手架项目:

git clone https://github.com/tao.git

目录结构介绍

text
swing-tao-service
|-- swing-tao-pojo          # pojo模块,提供PO\VO\DTO等实体类、视图类的定义
|-- swing-tao-restful       # restful模块,提供核心业务实现,提供RESTful接口
|-- swing-tao-sdk           # sdk模块,提供业务对外提供的接口
|-- Dockerfile              # docker镜像构建文件

父pom 文件

xml
    <parent>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-parent</artifactId>
        <version>2025.2.8</version>
    </parent>

swing-tao-pojo

  • pom 定义
xml
<dependencies>

    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-bean</artifactId>
    </dependency>

    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-data-mybatis-plus</artifactId>
    </dependency>

</dependencies>

swing-tao-restful

  • pom 定义
xml

    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-trace</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-web-spring-boot-starter</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-cache</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-framework-security-spring-boot-starter</artifactId>
    </dependency>

bootstrap.yml 配置

yaml
spring:
  application:
    name: SWING-TAO-SERVICE
  config:
    import:
      - optional:nacos:${spring.application.name}.yaml?refreshEnabled=true
      - optional:nacos:common.yaml?refreshEnabled=true
  cloud:
    inetutils:
      preferred-networks: ${NACOS_IP_PREFIX:192.168.1}
    nacos:
      discovery:
        server-addr: ${spring.cloud.nacos.config.server-addr}
        group: ${spring.cloud.nacos.config.group}
        namespace: ${spring.cloud.nacos.config.namespace}
      config:
        server-addr: ${NACOS_SERVER_ADDR:192.168.1.115:8848}
        file-extension: yaml
        group: SWING_GROUP
        namespace: ${NACOS_NAMESPACE:public}
  • 开启框架配置
java
@EnableTronSecurity
@EnableTronDataMybatisPlus
@EnableTronWebMvc
@SpringBootApplication
public class SwingDemoApplication {}

swing-tao-sdk

  • pom 定义
xml
<dependencies>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-openfeign-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.wings.tiny</groupId>
        <artifactId>swing-tao-pojo</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

Dockerfile

dockerfile
FROM openjdk:17-jdk-alpine

ARG PROJECT_NAME=swing-demo

RUN mkdir -p /${PROJECT_NAME}-service

WORKDIR /${PROJECT_NAME}-service

ARG JAR_FILE=${PROJECT_NAME}-restful/target/${PROJECT_NAME}-restful-1.0-SNAPSHOT.jar

COPY ${JAR_FILE} app.jar

EXPOSE 10010

ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m "

ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS  app.jar --spring.cloud.nacos.config.server-addr=$NACOS_SERVER_ADDR --spring.cloud.nacos.discovery.ip=$NACOS_DISCOVERY_IP "]
  • 修改项目名称
  • 修改端口
  • 修改jvm参数

nacos创建工程配置文件

yaml
server:
  port: 10010
  servlet:
    context-path: /services/swing-tao/api/v1

#################### Spring #####################
spring:
  datasource:
    url: jdbc:mysql://${datasource_url}/swing_tao?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true

启动服务

API访问IP:port

西安抟微科技有限公司