Solon轻量级Web框架:Solon配置与第一个请求(三)

原创
2022/04/13 09:40
阅读数 481

家是最小国,国是千万家。上海疫情炸出的精致利己主义着从开源滚蛋吧。开源中国需要你我开源人的建设。

第一步:创建项目目录

第二步:POM添加依赖JAR

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.minimelon</groupId>
    <artifactId>solon-start</artifactId>
    <version>0.0.1</version>
    <packaging>jar</packaging>

    <name>${project.artifactId}</name>
    <description>java project for solon start</description>

    <parent>
        <groupId>org.noear</groupId>
        <artifactId>solon-parent</artifactId>
        <version>1.7.0</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <jwt.version>0.11.2</jwt.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.noear</groupId>
            <artifactId>solon-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.noear</groupId>
            <artifactId>solon.logging.impl</artifactId>
        </dependency>


        <dependency>
            <groupId>org.noear</groupId>
            <artifactId>solon-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>4.0.3</version>
        </dependency>

        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>3.0.4</version>
        </dependency>

        <!-- ORM -->
        <dependency>
            <groupId>org.noear</groupId>
            <artifactId>weed3-solon-plugin</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>

        <!-- Token生成与解析-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
            <version>${jwt.version}</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>${jwt.version}</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-orgjson</artifactId>
            <version>${jwt.version}</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <compilerArgument>-parameters</compilerArgument>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.noear</groupId>
                <artifactId>solon-maven-plugin</artifactId>
                <version>1.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

其中:

  • solon-test :Solon框架的单元测试依赖
  • solon-maven-plugin:Solon框架自带打包插件
  • lombok请设置scope为provided,确保打包时排除掉

第三步:配置文件app*.yml

  • 主配置文件:app.yml
server:
  port: 3001

solon:
  # 激活哪一套环境也可以是 profiles.active
  env: mariadb
  debug: 1 # 开启调试
  output:
    meta: 1

  app: # app 微服务取名,分组
    name: "solon-start"
    group: "melon"

# 以下为默认值,可以都不加(支持"云端配置服务"进行配置,支持写到"云端日志服务")
solon.logging.appender:
  console:
    level: TRACE
    # pattern: '%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n'

# 记录器级别的配置示例
solon.logging.logger:
  "root": #默认记录器配置
    level: INFO
  "cn.minimelon": #本项目日志级别
    level: DEBUG
  1. Web项目指定端口:server.port
  2. 根据运行环境不同,需要加载不同配置,指定:solon.env,如配置mariadb时,会加载配置文件app-mariadb.yml
  3. solon.logging为日志打印配置
  • 环境不同配置app-mariadb.yml
jdbc.master:
  jdbcUrl: jdbc:mariadb://127.0.0.1:3307/ruoyi?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
  driverClassName: org.mariadb.jdbc.Driver
  username: ruoyi
  password: 123456
  # 连接池的配置信息
  # 初始化大小,最小,最大
  initialSize: 5
  minIdle: 5
  maxActive: 20

这里只配置准备好的数据库、连接池,本博主所有文章采用免费轻量的mariadb,避免老美制裁。(不够资格制裁,万一我做大了呢?)

第四步:启动类AppStarter

package cn.minimelon.solon;

import org.noear.solon.SolonBuilder;

public class AppStarter {
    public static void main(String[] args) {
        new SolonBuilder().start(AppStarter.class, args);
    }
}

注意: 不做更多配置时,Solon默认扫码启动类所在包或者子包的支持注解,如cn.minimelon.solon*

获取更多Solon轻量级Web框架知识:点这里

第五步:第一个Controller

package cn.minimelon.solon.controller;

import org.noear.solon.annotation.Controller;
import org.noear.solon.annotation.Get;
import org.noear.solon.annotation.Mapping;

@Controller
@Mapping("/test")
public class TestController {

    @Get
    @Mapping("/show")
    public String show() {
        return "Solon欢迎你,开源人,请支持开源中国。";
    }
}

确定是不是Controller的不是类名TestController,而是注解@Controller,请求路径为@Mapping注解类路径+方法路径,示例:/test/show。注解@Get指定请求方法为Get,如需Post请求使用@Post。

运行结果

前后端分离后,测试工具推荐免费的国产浏览器插件PostWomen,有PostMan一样的体验。

入口运行AppStarter的main,效果截图: 插件PostWomen请求截图:

打赏:不喝咖啡,喝茶,粗茶就行。 赞助

下一篇:Solon轻量级Web框架:第一个增删改查(四)

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部