初始化后端工程
后端工程使用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

