Skip to content

创建springboot应用

创建SpringBoot应用

  • 创建工程:New > New Project
md
1. Spring lnitializr
2. Name:fine-example
3. Type:Maven
4. Group:cn.finemap
5. Artifact:fine-example
6. Package name:cn.finemap.example
7. JDK:17
8. JAVA:17
9. Packaging:Jar
  • 删除工程中的.mvn,mvnw,mvnw.cmd
  • 添加.gitignore
cmd
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### 授权 ###
/src/main/resources/fine-parent.lic

### VS Code ###
.vscode/

配置fine-parent依赖

依赖

  • pom.xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- 继承fine-parent -->
    <parent>
        <groupId>cn.finemap</groupId>
        <artifactId>fine-parent</artifactId>
        <version>1.0-RELEASE</version>
    </parent>

    <groupId>cn.finemap</groupId>
    <artifactId>fine-example</artifactId>
    <version>1.0-RELEASE</version>
    <name>fine-example</name>
    <description>案例工程</description>
    
    <dependencies>
        <!--fine-boot-->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-boot</artifactId>
            <version>${fine.version}</version>
        </dependency>
        <!-- fine-commons -->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-commons</artifactId>
            <version>${fine.version}</version>
        </dependency>
        <!-- fine-sql -->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-sql</artifactId>
            <version>${fine.version}</version>
        </dependency>
        <!-- fine-logs -->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-logs</artifactId>
            <version>${fine.version}</version>
        </dependency>
        <!-- fine-auth -->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-auth</artifactId>
            <version>${fine.version}</version>
        </dependency>
        <!-- fine-doc -->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-doc</artifactId>
            <version>${fine.version}</version>
        </dependency>
        <!--fine-cache-->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-cache</artifactId>
            <version>${fine.version}</version>
            <optional>true</optional>
        </dependency>
        <!--fine-data-->
        <dependency>
            <groupId>cn.finemap</groupId>
            <artifactId>fine-data</artifactId>
            <version>${fine.version}</version>
        </dependency>
        
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

配置

  • src/main/resources/application.yml
yaml
spring:
  profiles:
    active: dev #开发环境:dev
    include: sql,cache,doc,auth,data
  application:
    name: fine-example # 服务名称
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: fine
      password: finemap@cn
      url: jdbc:mysql://ip:port/fine_example?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
  data:
    redis: 
      port: 6379
      host: 127.0.0.1
      password: 
      database: 0
      timeout: 10s
      lettuce:
        pool:
          # 连接池最大连接数
          max-active: 200
          # 连接池最大阻塞等待时间(使用负值表示没有限制)
          max-wait: -1ms
          # 连接池中的最大空闲连接
          max-idle: 10
          # 连接池中的最小空闲连接
          min-idle: 0      
server:
  port: 80 # 端口
  servlet:
    context-path: /fine-example # 服务名称 
# springdoc-openapi项目配置
springdoc:
  group-configs:
    - group: '权限管理'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.auth
    - group: '后台管理'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.data.base
    - group: '数据管理'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.data.data
    - group: '联表查询'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.data.union
    - group: '聚合查询'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.data.aggr  
    - group: 'excel管理'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.data.excel
    - group: 'fine服务'
      paths-to-match: '/**'
      packages-to-scan: cn.finemap.example
  # 配置文档信息
  info:
    title: 案例工程
    description: 案例工程-API文档
    version: 1.0.0
    contact:
      name: 凡图科技
      url: http://www.finemap.cn    
knife4j:
  # 开启生产环境屏蔽
  production: false

配置启动类

  • 启动类推荐在cn.finemap路径下
java
@Slf4j
@SpringBootApplication
@ComponentScan(basePackages = {"cn.finemap"})
public class FineExampleApplication {
  // xxx:启动程序(应用授权)
}

授权

框架授权

  • 使用fine-parent框架需要添加授权文件

获取授权

  • 将启动日志中的如下信息,并附上用户名和手机号,发给管理员,获取授权文件
----------------------------------------------------------
	凡图框架: fine-parent 框架授权
	项目名称: 项目名称
	机器码: xx-xx-xx-xx-xx-xx
	授权状态: 授权失败
	授权机器码: 
	创建日期: 
	授权日期: 
	用户信息-用户名:附自己名称
	用户信息-手机号:附自己手机号
----------------------------------------------------------
  • 将管理员提供的授权文件fine-parent.lic(不能修改名称),存放到项目工程/src/main/resources/fine-parent.lic路径中
打包授权

在项目打包的项目中,使用管理员(finemap|凡图|凡图科技)、永久授权,授权文件打包 管理员用户,不在打印授权信息

应用授权

  • 使用fine-example应用,用户需要申请添加授权文件,才可以部署启动

工程打包

  • 程序打包:打成jar

install

  • 程序启动:依赖jre环境(该启动程序在应用中存在)
bash
# 直接启动
java -jar xxx.jar
# 指定配置文件启动:application
java -Dfile.encoding=utf-8 -Dspring.config.location=.\conf\application.yaml -Dsun.java.command=xxx.jar -jar .\target\xxx.jar

设置编码:-Dfile.encoding=utf-8 完全替代配置文件:-Dspring.config.location=.\conf\application.yaml 额外增加配置文件:-Dspring.config.additional-location=.\conf\application.yaml 命令行参数:java -Dsun.java.command=xxx.jar -jar .\target\xxx.jar

  • 创建SpringBoot应用及部署

参考官网:springboot应用