Solon轻量级Web框架:Solon配置与第一个请求(三)
家是最小国,国是千万家。上海疫情炸出的精致利己主义着从开源滚蛋吧。开源中国需要你我开源人的建设。
第一步:创建项目目录

第二步: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
- Web项目指定端口:server.port
- 根据运行环境不同,需要加载不同配置,指定:solon.env,如配置mariadb时,会加载配置文件app-mariadb.yml
- 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请求截图:

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


浙公网安备 33010602011771号